为了账号安全,请及时绑定邮箱和手机立即绑定

从另一个库导入函数时如何修复此语法错误

从另一个库导入函数时如何修复此语法错误

慕容708150 2023-03-30 16:09:41
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


查看完整回答
反对 回复 2023-03-30
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您不能为函数赋值。你可能想说: out_voltage = self.rp.set(self, 0, voltage)



查看完整回答
反对 回复 2023-03-30
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您正在为函数赋值,但这是不可能的,

你可以尝试任何类似self.rp.set = out_voltage(self, 0, voltage) 但不是这个self.rp.set(self, 0, voltage) = out_voltage


查看完整回答
反对 回复 2023-03-30
  • 3 回答
  • 0 关注
  • 166 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信