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

SyntaxError: can't assign to function call我在 genwave 函数的 self.rp.set 行中收到一个语法错误。我怎样才能摆脱这个错误?


  import time

  import rp

  import numpy as np

  import pyrpl


class 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


慕容708150
浏览 167回答 3
3回答

慕工程0101907

错误在这里说明了一切:SyntaxError: can't assign to function callself.rp.set正在被调用,然后被赋值为out_voltage。调用函数通常会返回值,这与函数的工作方式相反。我不确定self.rp.set实际上做了什么或返回了什么,或者out_voltage是什么,但它几乎看起来应该在等号上翻转表达式,但是函数从不做任何事情,out_voltage很难说。顺便说一句,这个错误将发生在更多的函数调用中genwave。例如:>>> int() = 0&nbsp; File "<stdin>", line 1SyntaxError: can't assign to function call

红糖糍粑

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

牛魔王的故事

您正在为函数赋值,但这是不可能的,你可以尝试任何类似self.rp.set = out_voltage(self, 0, voltage)&nbsp;但不是这个self.rp.set(self, 0, voltage) = out_voltage
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python