我尝试在raspberry pi上运行一些python代码,以便模拟不同的传感器。当调用一个函数两次时,我被告知我提供了太多的参数。我将有大约20个不同的函数都调用这个outputPWM
函数,但我只是举了两个函数作为例子。在
我这周才开始使用python,所以我不完全确定如何解决这个问题。如果我能在下一次调用之前以某种方式清除参数的outputPWM
函数,那么我的代码可能有一些根本性的缺陷
def outputPWM(n1,i):
num1 = (n1.get())
result = int(num1)
dutycycle = result
print(List[25])
List[i].start(0)
List[i].ChangeDutyCycle(dutycycle)
print("Duty cycle is %d" % dutycycle)
print("output is on port %d" %i)
def control():
ControlReturn = tk.StringVar()
ControlLabel = tk.Label(master, text="Control Return Air Temperature (Degrees Celcius)").grid(row=0, column=0)
ControlResult = tk.Label(master)
ControlEntry = tk.Entry(master, textvariable=ControlReturn).grid(row=0,column=2)
global outputPWM
outputPWM=partial(outputPWM,ControlReturn,20)
buttonCal = tk.Button(master, text="Enter", command=outputPWM).grid(row=0, column=3)
def display():
DisplayReturn = tk.StringVar()
DisplayLabel = tk.Label(master,text="Display Return Air Temperature (Degrees Celcius)").grid(row=1, column=0)
DisplayEntry = tk.Entry(master, textvariable=DisplayReturn).grid(row=1,column=2)
global outputPWM
outputPWM= partial(outputPWM,DisplayReturn,25)
buttonCal = tk.Button(master, text="Enter", command=outputPWM).grid(row=1, column=3)
display()
control()
我收到的错误是:
^{pr2}$
无论在何处创建部分函数,请为其指定全局输出PWM以外的名称:
此代码执行两次,第一次在}中执行(参数略有不同,但这无关紧要)
display()
中执行,第二次在{它用添加了2个参数的派生部分函数替换了原始函数。第二轮用从第一轮偏函数派生的另一轮偏函数替换该偏函数。结果函数分两步添加2+2个参数。这就是“takes 2args(4给定)”错误的来源。在
解决方案不是重用相同的名称(请参见https://en.wikipedia.org/wiki/Variable_shadowing),也不是使用
global
,除非这不是真正必要的。在相关问题 更多 >
编程相关推荐