溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何實現(xiàn)獨立Jython程序

發(fā)布時間:2021-12-18 13:53:48 來源:億速云 閱讀:206 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關(guān)如何實現(xiàn)獨立Jython程序的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

以下清單是一個獨立 Jython程序的示例:

清單 7. 模擬硬幣投擲的樣本 Jython程序(listing7.py)

from java.util import Random  rng = Random()  #This is a comment in Jython  print "Flipping a coin..." if rng.nextBoolean():      print "Came up heads" else:      print "Came up tails"

在解釋如何運行該代碼之前,讓我們先解釋一下代碼。這個示例引入了 Jython 中的 if 語句,這是有些人對 Jython(及其先輩 Python)評論的首要方面之一。沒有字符定界符標(biāo)記出當(dāng) if 語句條件為真時要執(zhí)行的代碼塊(Jython 中的條件不需要括起的圓括號,這與 Java 編程一樣)。只是這些代碼比周圍的代碼縮進(jìn)一層。

Jython代碼塊總是使用縮進(jìn)進(jìn)行標(biāo)記,而不是使用其它標(biāo)記,例如花括號。引入代碼塊的語句(例如 if )以冒號作為結(jié)尾。Jython 的這個特性意味著在編寫代碼時必須小心,因為縮進(jìn)代碼的方式實際上可能會改變代碼的含義。例如,清單 8a 產(chǎn)生的打印輸出只有數(shù)字 3,因為它上面兩個語句都屬于其條件永遠(yuǎn)不為真的 if 塊:

清單 8a. Jython代碼的縮進(jìn):只打印“3”

if 0:      print "1"     print "2" print "3"

如果我只更改其中一行的縮進(jìn),那么就會打印數(shù)字 2和數(shù)字 3:

清單 8b. Jython代碼的縮進(jìn):打印“2”和“3”

if 0:      print "1" print "2" print "3"

縮進(jìn)還必須一致,它必須與將代碼組織成塊的語句相關(guān)聯(lián),而且通常它還必須控制代碼流。例如:

清單 8c. Jython代碼的縮進(jìn):語法錯誤

print "1"     print "2" print "3"

這只會產(chǎn)生一個語法錯誤,因為沒有任何控制語句要求將一個塊與代碼其余部分相分離。

使用縮進(jìn)標(biāo)記代碼塊是 Python 和 Jython 的更有爭議的特性之一,但我認(rèn)為這個問題常常被夸大了。畢竟,如果您遵循有關(guān)縮進(jìn)的良好的編碼標(biāo)準(zhǔn),就不應(yīng)該有這種問題。如果遵循了良好的編碼縮進(jìn),那么機器會執(zhí)行,同行評論家就無話可說,因此事實勝于雄辯。

此外,我知道當(dāng)開發(fā)人員對這種語言使用一段時間后,沒有誰會注意這種限制。適當(dāng)縮進(jìn)成為 Jython 的第二本性??s進(jìn)和語法之間的這種聯(lián)系當(dāng)然可能會引起以前未遇到過的錯誤,但是沒有顯式的定界符也消除了使用這些定界符的語言中的某些常見錯誤。

您可以不必編譯就可運行 清單 7 中的文件(listing7.py),只需將該文件名作為 jython 命令的參數(shù)來調(diào)用,如下所示:

清單 9. 不編譯就運行“硬幣投擲”

$ jython listing7.py  Flipping a coin...  Came up tails  $

在上個示例中, $ 就是 UNIX shell 提示符,它非常象 Windows 系統(tǒng)上的 C:\> 。您還可以使用 jpythonc 命令將模塊編譯成 Java 字節(jié)碼( .class )文件,該命令允許您使用 java 或 jre 命令直接運行它。用這種方法編譯的 Jython 模塊有一些限制,但這個問題超出了本文的范圍。

感謝各位的閱讀!關(guān)于“如何實現(xiàn)獨立Jython程序”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI