自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)剖析Python 腳本問題介紹

開發(fā) 后端
Python 腳本是 Python 編程語言的 100% 純 Java 實(shí)現(xiàn)。它可以讓用戶將 Python 源代碼編譯成 Java 字節(jié)碼,并在任何 Java 虛擬機(jī)上運(yùn)行產(chǎn)生的字節(jié)碼。

David Mertz 采訪了 JPythonPython for .NET 的開發(fā)者 Mark Hammond、Finn Bock 和 Barry Warsaw。他從 Mark 那里了解到一些有關(guān)微軟開發(fā)的最新獨(dú)家新聞內(nèi)幕(當(dāng)然所有內(nèi)容都在保密合同限制內(nèi))并從 Finn 和 Barry 那里了解到有關(guān) JPython 和他們將要發(fā)布的 Jython 項(xiàng)目的一些信息。

盡管Python 腳本通常等同于 CPython,但它的規(guī)范曾在其它地方實(shí)現(xiàn)過多次,包括在用于 Java 和 .NET 的應(yīng)用程序中。JPythonPython 源碼編譯成 Java 字節(jié)碼,并提供了對(duì) Java 類的透明訪問。

Python for .NET 是微軟將要發(fā)布的交叉語言技術(shù)平臺(tái)工作中的一個(gè)應(yīng)用。在采訪 Mark Hammond、Finn Bock 和 Barry Warsaw 的過程中。我發(fā)現(xiàn)了有關(guān) JPythonPython for .NET 是如何開發(fā)的更多信息,以及為未來這些替代 Python 實(shí)現(xiàn)進(jìn)行了哪些準(zhǔn)備。

Python for .NET由于在 PythonWin 環(huán)境和 PythonCOM 擴(kuò)展方面出色的開發(fā),Mark Hammond 為廣大 Python 程序員所熟知。出于我們欽佩 Mark 的相同原因,微軟也很看重他。他們決定在 Python for .NET 的實(shí)現(xiàn)上向他求助。據(jù) Mark 稱,Python for .NET 的工作版本應(yīng)該很快就可得到,現(xiàn)在您應(yīng)該已經(jīng)可以從 ActiveState 獲得它的 alpha 或 beta 版(請(qǐng)參閱 參考資料)。

David Mertz :到底什么是 Python for .NET 呢?我想我特別想知道的是 Python for .NET 與您自己對(duì)CPythonPythonWin 和 PythonCOM 擴(kuò)展(它們似乎能夠控制 Windows 的內(nèi)部)之間的關(guān)系是怎樣的。

Mark Hammond :Python for .NET 是一種編譯器和運(yùn)行時(shí),它在微軟的 .NET 平臺(tái)上實(shí)現(xiàn)了 Python。.NET 平臺(tái)提供了一個(gè)運(yùn)行時(shí)和元數(shù)據(jù)系統(tǒng),它們?cè)O(shè)計(jì)成允許完整的語言互操作性,但要實(shí)現(xiàn)這一點(diǎn),語言必須能在該運(yùn)行時(shí)中使用。

例如,如果 Python 類是公用的以便 Visual Basic 程序員能夠繼承它,Python 類就必須以 .NET 術(shù)語而不是以 CPython 術(shù)語來實(shí)現(xiàn)和描述。Python .NET 的優(yōu)點(diǎn)只是可以與 .NET 框架互操作。這里仍然有許多缺陷,主要由于實(shí)現(xiàn)還不成熟而導(dǎo)致。但這確實(shí)只是時(shí)間的問題。我們?nèi)蕴幱陂_發(fā)和調(diào)試的 beta 階段。

Mertz :您對(duì)現(xiàn)在的 Python for .NET 和 CPython 之間不兼容性問題是怎么看的?Hammond :是啊,大多數(shù)模塊還沒有被實(shí)現(xiàn),所以現(xiàn)有以 C 編寫的模塊還無法確切使用。如果您的目標(biāo)不是 .NET 框架,最好此時(shí)不要使用 Python .NET。

Mertz :不過,Python for .NET 肯定有一些主要的優(yōu)勢(shì),例如方便的語言間通信和多語言應(yīng)用開發(fā)。但為什么您說比已經(jīng)有的那些 -- 例如 Python+C+SWIG 要好呢(當(dāng)然是假設(shè)情況)。

Hammond :就 Python+C+SWIG 目前的發(fā)展而言,應(yīng)該是明顯的。語言間調(diào)用永遠(yuǎn)不應(yīng)該象使用 Python+C+SWIG 那樣困難。但 SWIG 在許多其它方面是個(gè)了不起的產(chǎn)品。它揭開了 Python C 擴(kuò)展編寫的神秘面紗,并僅將它歸到困難的行列。

將 .NET 與 COM 或 Corba 進(jìn)行比較更合理一些。COM 和 Corba 都提供交叉語言調(diào)用“正適用”的解決方案,而不需要任何手工參與或編譯。.NET 將它更進(jìn)了一步,并提供交叉語言繼承和異常能力。這些優(yōu)點(diǎn)非常類似于在 Java 虛擬機(jī)下的多語言實(shí)現(xiàn)中發(fā)現(xiàn)的那些。

Mertz :Python for .NET 將 Python 腳本編譯成外部虛擬機(jī)的格式。對(duì)于 .NET VM 是否將支持 Stackless 和 Vyper 的某些外來特性,例如延續(xù)性、生成器、協(xié)同程序、尾遞歸或延緩求值,您認(rèn)為會(huì)這樣嗎?

Hammond :是的,從理論上說它會(huì)。但微軟 Beta 協(xié)議的一些條款不允許我談?wù)撚嘘P(guān)性能的問題。 讓我們將目標(biāo)只定在核心 Python 語言引用中定義的那些特性上。無用信息收集是繼承的,就象在 JPython 和 JVM 中的那樣。

Mertz :接下來談?wù)務(wù)咧黝},您認(rèn)為微軟為什么正在進(jìn)行 Python for .NET 的開發(fā)工作呢?
Hammond :這樣選擇目標(biāo) .NET 的人就可使用Python 腳本了。

微軟很早就確定要參與到 Python 和其它許多語言中,以確保他們的 VM 確實(shí)是不懂語言也能夠使用的。根據(jù)來自各種語言實(shí)現(xiàn)者的反饋意見,現(xiàn)在他們已經(jīng)對(duì)他們的 VM 做了大量更改。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來源: 驅(qū)動(dòng)之家
相關(guān)推薦

2010-02-01 13:34:59

Python 腳本

2010-03-26 16:35:29

Python open

2009-12-16 10:57:29

VS插件

2009-12-25 16:51:37

ADO參數(shù)

2010-03-05 10:24:33

2010-03-05 10:50:17

2010-03-05 11:58:52

2010-03-05 13:09:23

Linux shell

2010-03-05 11:18:52

Linux shell

2010-03-05 13:00:46

2010-03-05 13:19:23

2010-03-05 12:50:38

Linux shell

2010-02-03 11:26:28

2010-02-26 10:24:43

Python源代碼

2010-02-06 10:04:10

Android啟動(dòng)模式

2010-02-22 16:16:14

Python語法

2024-06-13 10:05:36

2009-12-28 13:53:01

ADO.NET記錄集

2010-02-24 14:04:32

Python腳本語言

2010-02-23 10:50:11

Python 測(cè)試框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)