主要變化:
- 現在,當 Python 程式碼中發生異常時,C++ 和 Java 程式碼中引發的異常會提供異常堆疊。 因此,要獲取有關異常堆疊的信息,您不再需要呼叫 stacktrace()。
- 呼叫返回速度提高了三倍。
- 顯著(數量級)提高了傳輸速度
多維數組的 numpy 緩衝區。 多維原語透過連續的 C 佈局傳遞在 JVM 內建立的唯讀副本。 - 所有公開的內部結構已替換為 CPython 實現,以及符號 __javaclass__、__javavalue__ 和 __javaproxy__
已刪除。 專用 Java 插槽已新增至從 jpype 類別類型繼承的所有 CPython 類型。 所有私有表已移至 CPython。 Java 類型現在必須從使用型別槽的 JClass 元類別繼承。 不允許使用 Python 基底類別的 Mixins。 這些型別是 Object、Proxy、Exception、Number 和 Array,直接繼承自 CPython 的內部實作。 - 改進了追蹤和異常處理。
- 數組切片現在被處理為支援寫回原始資料的視圖,例如 numpy 數組。 對於陣列切片,支援以步驟(slice(start, stop, step))設定和檢索值。
- 數組現在支援“__reversed__”。
- Java 陣列現在支援 memoryview API,並消除了對 numpy 的依賴來傳遞緩衝區內容。
- Numpy 不再是依賴項(額外),並且無需使用 numpy 支援進行編譯即可將記憶體傳輸到 numpy。
- JInterface 被設計為元類別。 使用 isinstance(cls, JInterface) 檢查介面。
- 將缺失的 TLD“mil”、“net”和“edu”新增至預設導入。
- 改進了啟動期間 UnsupportedClassVersion 的錯誤訊息。
- 如果找不到該元素,java.util.Map 現在會拋出 KeyError。 為 null 的值仍如預期傳回 None。 如果您想將空鍵視為 None,請使用 get()。
- 刪除了 java.util.Collection,因為它在清單上的remove(Object) 和remove(int) 之間奇怪地重載。 使用 Java remove() 方法存取本機 Java 行為,但強烈建議進行類型轉換以進行重載控制。
- 現在,在存取 java.util.List 元素時,可以使用 IndexError 異常類別來捕獲 java.lang.IndexOutOfBoundsException。
來源: opennet.ru