从JavaScript转换为Python代码?

时间:2010-02-27 07:43:51

标签: javascript python code-translation

是否有一个相对较快的程序来完成至少这个基础知识?只有几个正则表达式?我愿意做一些手动转换,但这是一个非常大的脚本集。

5 个答案:

答案 0 :(得分:22)

您可以使用Js2Py将JavaScript翻译为Python。它支持整个JavaScript,您可以使用它来翻译大型JavaScript模块,如esprima.js(JavaScript 6解析器)。

<小时/> 简短演示:

>>> import js2py
>>> f = js2py.eval_js( "function $(a) {return a + arguments[1]}" )
>>> f
function $(a) { [python code] }
>>> f(1, 2, 3)
3

这就是翻译函数在内部的样子(它相当难看):

>>> print js2py.translate_js( "function $(a) {return a + arguments[1]}" )
from js2py.pyjs import *
var = Scope( JS_BUILTINS )
set_global_object(var)
# Code follows:
var.registers([u'$'])
@Js
def PyJsHoistedNonPyName(a, this, arguments, var=var):
    var = Scope({u'a':a, u'this':this, u'arguments':arguments}, var)
    var.registers([u'a'])
    return (var.get(u'a')+var.get(u'arguments').get(u'1'))
PyJsHoistedNonPyName.func_name = u'$'
var.put(u'$', PyJsHoistedNonPyName)

答案 1 :(得分:12)

更新

现在几(4)年后(几乎可以肯定)可以完成;虽然肯定没有RegEx。 我建议未来的读者关注@Piotr Dabkowski's answer.。 或者其他一些答案。 (我不知道没试过)


原始答案

这是一个很难的。 编译器的定义从较高级语言转换为较低级语言。 例如python到机器代码。 或java到javascript(google在这个地方有一个相当着名的编译器 - 它'使谷歌doc更容易制作的原因) Python到javascript编译器比比皆是。 技术上javascript to python将是一个反编译器。 (AFAIK)

我发现了一些关于javascript-python转换器here:的推测。它主要讲的是如何做起来并不难。 我找不到任何东西,但这并不意味着它没有。

正则表达式不合适,正则表达式仅适用于常规语言。 编程语言通常不是常规语言。见this

答案 2 :(得分:7)

这个答案可能晚了2年左右,但是js - &gt; coffeescript - &gt;蟒蛇?如果您使用类似http://js2coffee.org/的内容转换为cs,那么缩进和列表等内容已经为您完成。

答案 3 :(得分:3)

还有其他一些工具可以将JavaScript源代码翻译成Python。例如,Jiphy可以将JavaScript源代码翻译成Python,反之亦然。

答案 4 :(得分:0)

如果您要求的是将javascript中的一些正则表达式转换为Python等价物,那么正则表达式的基础知识大多数都非常标准。看看Python re module doc。查看您所使用的内容是否已记录在案。您感兴趣的还有this页面。

如果您正在谈论将javascript代码转换为Python等效代码,那么最好的转换器就是。了解Python,然后手动转换它们。没有比人类更好的了。像循环,变量,数组这样的编程结构非常常见,标准的你会立即认识到如何直接使用它们。