将变量从Javascript传递到Python脚本

2024-04-26 20:50:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Javascript调用Python脚本。另外,我必须从Javascript向Python脚本传递变量。在Python中返回结果之后,我想将这个结果传递回Javascript。我不知道最好的办法是什么。你知道吗

我看到过使用flask和json的各种实现,但我不知道哪种方法是最好的。你知道吗

举个例子,这就是我要做的:

Javascript.js文件

myJSVariable1 = “Hello “

myJSVariable2 = “World!” 

result = callPythonScript(myJSVariable1, myJSVariable2)

console.log(result)

pythonScript.py文件

print(myJSVariable1, myJSVariable2)

在这个例子中,我希望控制台.log(结果)返回“你好,世界!“作为pythonScript.py文件打印与myJSVariable2连接的myJSVariable1的结果。你知道吗

有人对这样做有什么建议吗?你知道吗


Tags: 文件方法py脚本logjsonflaskjs
1条回答
网友
1楼 · 发布于 2024-04-26 20:50:16

变量是一个与一种编程语言紧密相连的概念,事实上甚至与一种编程语言实现紧密相连。在编程语言之间传递变量,甚至在相同编程语言的不同实现之间传递变量通常是不可能的,除非那些实现已经被特别编写成允许这种多语言编程风格。你知道吗

据我所知,有四种编程语言实现框架明确设计为允许编程语言实现以支持多语言编程的方式编写:

然而,不幸的是,似乎没有一个同时具有生产质量的Python和ECMAScript实现:

  • Parrot被遗弃,自2016-02-16以来没有发布,自2017-10-02以来没有提交。你知道吗

  • 在Rubinius上,目前除了Ruby之外,没有任何语言实现可以用于生产:

    • Typhon
    • Tofu(ECMAScript实现;您会注意到,除了自述之外,什么都没有写过)
  • 一个精简的、冻结的DLR版本作为.NET的一部分发布,但是微软自己已经放弃了它。It is still being developed作为IronLanguages项目的一部分。你知道吗

    • IronPython是python2在DLR上的一个成熟的、可生产的实现,但是Python 3 support还不能生产。你知道吗
    • 不幸的是,DLR上的所有ECMAScript实现都已被放弃:

    • ManagedJScript是Microsoft的一个官方ECMAScript实现,它本来是DLR的海报子系统之一,但它从未发布,而且早就被放弃了。

    • IronJS已被放弃。你知道吗
  • 松露是积极维护,积极开发,生产准备。你知道吗

    • GraalJS得到了积极的维护、积极的开发和生产准备。你知道吗
    • 不幸的是,这两种针对Truffle的Python实现目前都还在开发中:

    • GraalPython

    • ZipPy

因此,正如您所看到的,虽然有一些多语言编程语言实现框架,这些框架也有一些Python和ECMAScript实现,但不幸的是,没有一个框架同时具有Python和ECMAScript的产品级实现:DLR有Python(2),但没有ECMAScript,Truffle有ECMAScript,但没有Python。你知道吗

但是,传递变量的想法还有另一个问题:Python和ECMAScript都没有具体化变量,在这些语言中,变量不是对象(或原语)。并且只能传递,即对象和基本体。你知道吗

相关问题 更多 >