自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

四款工具順利實(shí)現(xiàn)Python與JavaScript間的代碼轉(zhuǎn)換

譯文
開發(fā) 前端 后端
熱衷于Python?對JavaScript則不甚感冒?沒問題,今天介紹的四款工具能夠順利對二者代碼加以轉(zhuǎn)換,從而保證Python在Web應(yīng)用程序當(dāng)中大顯神威。

選Python還是JavaScript?雖然不少朋友還在爭論二者目前誰更強(qiáng)勢、誰又擁有著更為光明的發(fā)展前景,但毫無疑問,二者的競爭在Web前端領(lǐng)域已經(jīng)擁有明確的答案。立足于瀏覽器平臺,如果放棄JavaScript,我們也就沒什么可選擇的項(xiàng)目了。

[[162910]]

好吧,也許答案也不是這么絕對。JavaScript已經(jīng)成為眾多其它編程語言爭相選擇的轉(zhuǎn)換目標(biāo)(相關(guān)實(shí)例包括TypeScript、Emscripten、Cor以及Cheerp)。而Python則擁有龐大的追隨者群體,另外強(qiáng)大的現(xiàn)有庫資源則使其成為面向JavaScript的理想待轉(zhuǎn)換或者說轉(zhuǎn)譯選項(xiàng)。

下面來看四個能夠順利將Python帶入JavaScript世界的現(xiàn)有項(xiàng)目; 而其中一款更是憑借著靈活的雙向轉(zhuǎn)換能力而鶴立雞群。

Transcrypt

這是一款新近崛起的Python到JS轉(zhuǎn)譯器。Transcrypt對于自身所生成代碼的質(zhì)量水平做出了令人印象深刻的承諾。首先,它會盡可能多地保留原始的Python代碼結(jié)構(gòu),包括多重繼承以及l(fā)ambda表達(dá)式。Python源代碼也可以直接對JavaScript中命名空間內(nèi)的對象進(jìn)行調(diào)用。如果大家嘗試訪問Python中的document.getElementById,則轉(zhuǎn)換后的代碼也將在JavaScript當(dāng)中切實(shí)使用document.getElementById。

根據(jù)說明文檔的介紹,Transcrypt是利用CPython的抽象語法樹模塊完成這些轉(zhuǎn)譯任務(wù)的,其能夠根據(jù)Python對自身代碼的解析方式進(jìn)行編程訪問。盡管該項(xiàng)目目前仍處于alpha測試階段,但已經(jīng)顯示出了非常驚人的吸引力。

Jiphy

所謂Jiphy,代表的是“JavaScript入,Python出”——也就是能夠?qū)Χ哌M(jìn)行雙向轉(zhuǎn)換。另外,來自兩種語言的代碼都能夠在被轉(zhuǎn)換為另一種語言之前進(jìn)行混合。

Jiphy目前的***短板在于其僅支持Python的一部分功能集。類以及默認(rèn)參數(shù)尚不受支持,不過裝飾器與例外機(jī)制已經(jīng)可以正常使用。這主要是因?yàn)镴iphy堅(jiān)持在源代碼與目標(biāo)代碼之間采用行對行直接轉(zhuǎn)譯方式,不過其開發(fā)人員也開始著眼于ES6中的新功能,旨在將更多高級Python功能納入支持范疇。

Brython

也許有一天,當(dāng)WebAssembly設(shè)想成為現(xiàn)實(shí),那么我們將能夠選擇任何自己偏好的語言進(jìn)行Web開發(fā)。而Brython對此——或者說至少適用于Python 3——有著自己的理解:為什么要等?

Brython通過一套JavaScript庫對Python 3中的全部關(guān)鍵字以及大多數(shù)內(nèi)置插件進(jìn)行模擬,從而實(shí)現(xiàn)了將Python 3版本作為客戶端Web編程方案的目標(biāo)。由Python編寫的腳本可以被直接添加到網(wǎng)絡(luò)頁面當(dāng)中,而Brython還支持一套高級Python模塊界面(browser),用于同DOM進(jìn)行執(zhí)行協(xié)作,且該瀏覽器通??稍贘avaScript中直接完成。

然而,Brython也保持了瀏覽器給JavaScript代碼帶來的限制——例如不支持對本地文件系統(tǒng)進(jìn)行處理。

RapydScript

RapydScript承諾“讓Python式JavaScript代碼不再糟糕。”該項(xiàng)目在概念上類似于CoffeeScript:以Python形式進(jìn)行代碼編寫,生成JavaScript代碼,并同時發(fā)揮二者的***特性。在Python方面,其擁有清晰的語法規(guī)則; 而在JavaScript方面,其擁有匿名函數(shù)、DOM操作并能夠使用jQuery或者Node.js內(nèi)核等現(xiàn)有JavaScript庫。

原文標(biāo)題:4 tools to convert Python to JavaScript (and back again)

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來源: 51CTO
相關(guān)推薦

2017-03-09 18:00:30

JavaScript代碼

2014-03-12 11:47:00

JavaScript工JS工具評測

2016-10-26 15:28:41

Web性能測試網(wǎng)絡(luò)優(yōu)化

2015-05-07 09:12:37

JavaScriptJavaScript工

2016-11-08 20:42:37

2024-05-07 07:40:26

Visual工具XAML

2021-05-07 13:39:20

Python工具代碼

2013-11-11 09:35:42

Android系統(tǒng)架構(gòu)

2025-02-24 11:03:11

Python編程語言數(shù)據(jù)類型轉(zhuǎn)換

2017-02-13 20:43:45

開源調(diào)查工具

2024-01-18 09:00:00

漏洞Docker工具

2024-04-22 15:00:00

AIAI輔助編程工具開發(fā)

2016-02-23 15:18:26

開源問題追蹤工具

2022-09-15 17:08:20

JavaScripWeb開發(fā)

2017-03-09 08:36:29

開源工具物聯(lián)網(wǎng)移動應(yīng)用

2014-03-14 10:56:59

語法高亮代碼高亮

2020-03-12 14:03:59

工具代碼開發(fā)

2014-12-30 09:35:16

文字轉(zhuǎn)語音

2022-03-29 18:18:07

Kubernetes框架

2010-07-14 16:10:37

Perl
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號