首頁 >後端開發 >Python教學 >Python與JavaScript間程式碼轉換4個工具

Python與JavaScript間程式碼轉換4個工具

高洛峰
高洛峰原創
2016-10-17 11:54:471490瀏覽

Python 還是 JavaScript?雖然不少朋友還在爭論二者目前誰更強勢、誰又擁有著更為光明的發展前景,但毫無疑問,二者的競爭在 Web 前端領域已經擁有明確的答案。立足於瀏覽器平台,如果放棄 JavaScript,我們就沒什麼好選擇的專案了。

好吧,也許答案也不是這麼絕對。 JavaScript 已成為眾多其它程式語言爭相選擇的轉換目標(相關實例包括 TypeScript、Emscripten、Cor 以及 Cheerp)。而 Python 則擁有龐大的追隨者群體,另外現有的強大函式庫資源則使其成為面向 JavaScript 的理想待轉換或說轉譯選項。

下面來看四個能夠順利將 Python 帶入 JavaScript 世界的專案:

Transcrypt

這是一款新近崛起的 Python 到 JS 轉譯器。 Transcrypt 對於自身所產生程式碼的品質水準做出了令人印象深刻的承諾。首先,它會盡可能保留原始的 Python 程式碼結構,包括多重繼承以及 lambda 表達式。 Python 原始碼也可以直接對 JavaScript 中命名空間內的物件進行呼叫。如果大家嘗試存取 Python 中的 document.getElementById,則轉換後的程式碼也會在JavaScript 當中切換使用 document.getElementById。

根據說明文件的介紹,Transcrypt 是利用 CPython 的抽象語法樹模組完成這些轉譯任務的,其能夠根據 Python 對自身程式碼的解析方式進行程式存取。儘管該專案目前仍處於 alpha 測試階段,但已經顯示出了非常驚人的吸引力。

Jiphy

所謂 Jiphy,代表的是「JavaScript 入,Python 出」——也就是能夠對二者進行雙向轉換。另外,來自兩種語言的程式碼都能夠在被轉換為另一種語言之前進行混合。

Jiphy 目前的最大短板在於其僅支援 Python 的一部分功能集。類別以及預設參數尚不受支持,不過裝飾器與例外機制已經可以正常使用。這主要是因為 Jiphy 堅持在原始碼與目標程式碼之間採用行對行直接轉譯方式,不過其開發人員也開始著眼於 ES6 中的新功能,旨在將更多高級 Python 功能納入支援範疇。

Brython

也許有一天,當 WebAssembly 設想成為現實,那麼我們將能夠選擇任何自己偏好的語言進行 Web 開發。而 Brython 對此——或者至少適用於 Python 3——有著自己的理解:為什麼要等?

Brython 透過一套 JavaScript 函式庫對 Python 3 中的全部關鍵字以及大多數內建外掛程式進行模擬,從而實現了將 Python 3 版本作為客戶端 Web 程式設計方案的目標。由 Python 編寫的腳本可以直接加入到網頁頁面當中,而 Brython 也支援一套高階 Python模組介面(browser),用於與 DOM 一起執行協作,而該瀏覽器通常可在 JavaScript 中直接完成。

然而,Brython 也保持了瀏覽器對 JavaScript 程式碼帶來的限制——例如不支援對本機檔案系統進行處理。

RapydScript

RapydScript 承諾「讓 Python 式 JavaScript 程式碼不再糟糕。」專案在概念上類似於 CoffeeScript:以 Python 形式進行程式碼編寫,產生 JavaScript 程式碼,並同時發揮二者的最佳特性。在 Python 方面,其擁有清晰的語法規則; 而在 JavaScript 方面,其擁有匿名函數、DOM 操作並能夠使用 jQuery 或 Node.js 核心等現有 JavaScript 函式庫。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn