SyntaxError: can't assign to function call我在 genwave 函數(shù)的 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條經(jīng)驗 獲得超5個贊
錯誤在這里說明了一切:
SyntaxError: can't assign to function call
self.rp.set正在被調(diào)用,然后被賦值為out_voltage。調(diào)用函數(shù)通常會返回值,這與函數(shù)的工作方式相反。
我不確定self.rp.set實際上做了什么或返回了什么,或者out_voltage是什么,但它幾乎看起來應該在等號上翻轉(zhuǎn)表達式,但是函數(shù)從不做任何事情,out_voltage很難說。順便說一句,這個錯誤將發(fā)生在更多的函數(shù)調(diào)用中g(shù)enwave。
例如:
>>> int() = 0
File "<stdin>", line 1
SyntaxError: can't assign to function call

牛魔王的故事
TA貢獻1830條經(jīng)驗 獲得超3個贊
您正在為函數(shù)賦值,但這是不可能的,
你可以嘗試任何類似self.rp.set = out_voltage(self, 0, voltage)
但不是這個self.rp.set(self, 0, voltage) = out_voltage
添加回答
舉報
0/150
提交
取消