簡體   English   中英

從另一個庫導入函數時如何解決此語法錯誤

[英]How can I fix this syntax error when importing functions from another library

我收到語法錯誤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

錯誤在這里說明了一切:

SyntaxError: can't assign to function call

self.rp.set被調用,然后被分配一個值out_voltage 調用 function 通常返回值,這與 function 的工作方式相反。

我不確定self.rp.set實際做什么或返回什么,或者out_voltage是什么,但看起來表達式應該在等號上翻轉,但是 function 從來沒有對out_voltage做任何事情,所以很難說. 順便說一句,對於 genwave 中的更多genwave調用,將發生此錯誤。

例如:

>>> int() = 0
  File "<stdin>", line 1
SyntaxError: can't assign to function call

您正在為 function 分配一個值,這是不可能的,

您可以嘗試任何類似self.rp.set = out_voltage(self, 0, voltage)但不是這個self.rp.set(self, 0, voltage) = out_voltage

您不能為 function 分配值。 你可能是想說: out_voltage = self.rp.set(self, 0, voltage)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM