国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python和JavaScript間代碼轉換的4個工具

2019-11-25 16:55:29
字體:
來源:轉載
供稿:網友

選 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 庫。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 达州市| 米易县| 鹿泉市| 甘洛县| 六盘水市| 盐亭县| 信宜市| 宜君县| 鄯善县| 香河县| 灵宝市| 黄冈市| 南乐县| 林口县| 阜城县| 社会| 章丘市| 连州市| 绩溪县| 新蔡县| 黎川县| 永清县| 桃江县| 谷城县| 长岭县| 河西区| 洪洞县| 博白县| 沁阳市| 紫阳县| 孙吴县| 常德市| 丰台区| 格尔木市| 正蓝旗| 大名县| 远安县| 曲沃县| 堆龙德庆县| 兴文县| 巴马|