我想編寫一個類函數,它將Signal對象作爲參數並返回其副本。然後我想用一個返回自變量副本的實例函數重載這個函數。我有下面的代碼:將自我對象傳遞給需要此類型的函數
@classmethod
def copy(cls, arg):
if not isinstance(arg, Signal):
raise ValueError("Argument must be of type Signal")
result = Signal()
result.framerate = arg.framerate
return result
def copy(self):
return FragmentsSignal.copy(self)
和
Signal1 = Signal(100)
Signal2 = signal1.copy()
但調用該函數複製我的代碼後進入無限遞歸循環,並拋出這個網站作爲例外的名稱。我的問題是:
我是否正確使用python函數重載機制?
如何將*參數傳遞給類中的類函數?
幀率是唯一的信號屬性?你是否希望它只複製一個屬性(如果將來會有更多的)或所有這些屬性? – Nf4r
不,它不是。我簡化了代碼以使問題更清楚。 – IFeel3