SyntaxError: can't assign to function call我在 genwave 函数的 self.rp.set 行中收到一个语法错误。我怎样才能摆脱这个错误? import time import rp import numpy as np import pyrplclass PID: """PID Controller"""def __init__(self, P=0.2, I=0.0, D=0.0, current_time=None): self.Kp = P self.Ki = I self.Kd = D self.sample_time = 0.00 self.current_time = current_time if current_time is not None else time.time() self.last_time = self.current_time self.targetT = targetT self.clear() def genwave(self, out_channel, waveform, voltage, offset): '''generates analog waveform out of the redpitaya from OUT 1''' self.rp.analog() self.rp.set(self, 0, voltage) = out_voltage self.rp.funct_gen() self.rp.set_waveform(self, 1, waveform) = wave_output self.rp.set_amplitude(self, 1, voltage) = wave_amplitude self.rp.set_offset(self,1, offset) = voltage_offset
3 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
错误在这里说明了一切:
SyntaxError: can't assign to function call
self.rp.set正在被调用,然后被赋值为out_voltage。调用函数通常会返回值,这与函数的工作方式相反。
我不确定self.rp.set实际上做了什么或返回了什么,或者out_voltage是什么,但它几乎看起来应该在等号上翻转表达式,但是函数从不做任何事情,out_voltage很难说。顺便说一句,这个错误将发生在更多的函数调用中genwave。
例如:
>>> int() = 0
File "<stdin>", line 1
SyntaxError: can't assign to function call
牛魔王的故事
TA贡献1830条经验 获得超3个赞
您正在为函数赋值,但这是不可能的,
你可以尝试任何类似self.rp.set = out_voltage(self, 0, voltage)
但不是这个self.rp.set(self, 0, voltage) = out_voltage
添加回答
举报
0/150
提交
取消