【发布时间】:2018-01-05 13:30:17
【问题描述】:
我在 python3 中有一个程序 (temp.py),它读取太阳能电池板中传感器的温度。我还有一个程序 (stepper.py) 用于控制步进电机。程序stepper.py 使用sys.argv 来评估参数并确定电机应该转动多远和多快。我现在想从temp.py 调用stepper.py 来组合这两个程序的功能。但是,当我从temp.py 调用stepper.py 时,参数不会以sys.argv 可以使用它们的方式传递。我写了一个简短的脚本来说明我的问题:
import sys
y=5
z=2
def called(a,b):
print(str(sys.argv))
print(len(sys.argv[1:]))
global p,q
p=a*b
q=a+b
called(y,z)
print(p,q)
此脚本返回以下内容:
['/home/pi/calling.py']
0
10 0
也就是说,虽然参数的计算已经完成,但sys.argv 表示没有传递任何参数,只显示了程序名argv[0]。我理解为什么会发生这种情况,但有什么方法可以让sys.argv“看到”这些论点?
【问题讨论】:
-
你在 stepper.py 中使用导入还是子进程调用你的代码?
标签: python-3.x parameter-passing user-defined-functions