Jython入門指導:語言特性簡介
Jython 是作為包含安裝程序的單個 Java 類文件而發布的。只要下載 jython-21.class 并將該文件放在 CLASSPATH 內,然后運行 java jython-21 。選擇您要安裝的組件(在示例中,我選擇了所有缺省組件),接受其許可證(這是開放源碼 BeOpen/CNRI 許可證)并指定安裝目錄,之后安裝程序會完成其余安裝。
如果安裝時碰到問題,請參閱 Jython 網站上的安裝信息頁。對于 UNIX 平臺,您可能想將選擇的 Jython 安裝路徑添加到 PATH 環境變量。做為Jython入門指導,現在只要輸入“jython”就可以運行交互式 PATH :
清單 1. 運行 Jython shell
- $ jython
- Jython 2.1 on java1.4.0_01 (JIT: null)
- Type "copyright", "credits" or "license" for more information.
- >>>
>>> 提示符允許您輸入命令并立即獲得結果。在 Java 編程中,每個程序都必須至少定義一個類。清單 2 演示了一個完整的 Java 程序,它用于將一條消息寫到屏幕:
清單 2. 完整的 Java 程序
- class App
- {
- public static void main(String args[])
- {
- System.out.println("I don't like spam!");
- }
- }
JPython 將這些行減少為:
清單 3. Jython 減少了 Java 代碼開銷
- >>> print "I don't like spam!"
- I don't like spam!
- >>>
print 關鍵字是重要的工具之一,特別是在交互式 shell 中,它會立即打印其參數,并隨后向您返回 shell 提示符。不僅輸入和調試的代碼比較少,而且不必經歷編譯/運行周期就可以馬上獲得結果??梢砸淮未蛴《鄠€值,并象下面顯示的那樣輕松使用簡單的表達式:
清單 4. print 是一個重要的 Jython 工具
- >>> print "one plus one is", 1+1
- one plus one is 2
- >>>
Jython 表達式類似于 Java 表達式。 1+1 的結果是一個整數,通過 print 它被強制轉換成字符串,并被并置到由逗號定界符指定的初始字符串。
通過使用 Jython,您甚至不需要什么工具就可以訪問標準 Java 庫。以下示例訪問了 java.util.Random :
清單 5. 通過 Jython 訪問標準 Java 庫
- >>> from java.util import Random
- >>> rng = Random()
- >>> i = rng.nextBoolean()
- >>> print i
- 1
- >>>
Jython 的 import 關鍵字與 Java 語言版本的相似之處在于它使一個模塊中的內容可以為其它模塊所使用,但是語法和行為有所差別。
上面清單 5 中的示例使用了相關的 from 關鍵字以限制從 java.util 導入哪些符號。其后一行顯示了 Random 類實例的創建。正如您所看到的,不需要 new 關鍵字。
也不需要對保存新實例的變量進行任何類型說明。這強調了 Jython 的一個重要簡化,而且這是其動態本性的一個優點 ― 您不必再擔心數據類型定義了。
清單 5 中的下一行演示了方法調用,這與 Java 語言完全相同,只是沒有對結果進行類型聲明。Java 代碼中的 nextBoolean() 是布爾值。Jython 2.1 沒有布爾類型(不過這可能會很快改變;Python 2.3 就添加了布爾類型),因此它替換為 0或 1這樣的整數。類似地,要調用希望使用布爾值的 Java 方法,就要傳遞滿足這些約束的整數值。
您也可以使用 import 關鍵字對導入的所有符號作全限定,如清單 6 所示:
清單 6. Import 對所有導入的符號名稱作了全限定
- >>> import java.util.Random
- >>> rng = java.util.Random()
- >>> print rng.nextFloat()
- 0.9567907452583313
- >>>
Jython 的浮點值與 Java 語言中的完全相同。以上便完成了Jython入門學習。
【編輯推薦】