裸Python-JS脚本
Naked Python-JS script
当使用 python 的 Naked 库启动带参数的 jv 脚本时,它总是给我同样的问题,即参数未定义。
这是 python 代码:
from Naked.toolshed.shell import execute_js, muterun_js
pi=str(8)
response = execute_js('file.js', pi)
这里是 file.js 代码:
console.log(pi);
如您所见,这是一段非常简单的代码,但我不知道如何在不声明参数的情况下发送参数。
我看到了类似的问题,但这里的主要问题是我不知道如何在 javascript 代码中声明一个来自“out”
的变量
来自 Naked
文档:
The execute_js() function runs the execute() function on a Node.js script file. Instead of passing the command to be executed as the first parameter, pass a Node.js script filepath as the first parameter and any additional command arguments as the second parameter (optional)
所以问题不在python而是在Node.js
程序。
Here 您可以找到有关如何从控制台 运行 时将参数传递给节点程序的说明。
我认为解决你的问题的方法是更改节点程序如下:
var pi = process.argv[2];
console.log(pi);
您选择第三个参数的地方,因为前两个参数分别是 node.js 路径和当前程序路径。
更新:如果你想传递超过 1 个变量,你只需将所有变量作为空白分隔字符串作为 execute_js
.
的第二个参数传递
示例:
Python边
pi = 8
rho = 10
arg_in = f"{pi} {rho}" # for older versions of python you can use "{pi} {rho}".format(pi=pi, rho=rho)
response = execute_js('file.js', arg_in)
Js端
var pi = process.argv[2],
rho = process.argv[3];
console.log(pi, rho)
您可以传递任意数量的参数,使用列表和循环进行调整,您可以传递动态数量的参数。
当使用 python 的 Naked 库启动带参数的 jv 脚本时,它总是给我同样的问题,即参数未定义。 这是 python 代码:
from Naked.toolshed.shell import execute_js, muterun_js
pi=str(8)
response = execute_js('file.js', pi)
这里是 file.js 代码:
console.log(pi);
如您所见,这是一段非常简单的代码,但我不知道如何在不声明参数的情况下发送参数。 我看到了类似的问题,但这里的主要问题是我不知道如何在 javascript 代码中声明一个来自“out”
的变量来自 Naked
文档:
The execute_js() function runs the execute() function on a Node.js script file. Instead of passing the command to be executed as the first parameter, pass a Node.js script filepath as the first parameter and any additional command arguments as the second parameter (optional)
所以问题不在python而是在Node.js
程序。
Here 您可以找到有关如何从控制台 运行 时将参数传递给节点程序的说明。
我认为解决你的问题的方法是更改节点程序如下:
var pi = process.argv[2];
console.log(pi);
您选择第三个参数的地方,因为前两个参数分别是 node.js 路径和当前程序路径。
更新:如果你想传递超过 1 个变量,你只需将所有变量作为空白分隔字符串作为 execute_js
.
示例:
Python边
pi = 8
rho = 10
arg_in = f"{pi} {rho}" # for older versions of python you can use "{pi} {rho}".format(pi=pi, rho=rho)
response = execute_js('file.js', arg_in)
Js端
var pi = process.argv[2],
rho = process.argv[3];
console.log(pi, rho)
您可以传递任意数量的参数,使用列表和循环进行调整,您可以传递动态数量的参数。