Python - TypeError: generateID() takes 3 positional arguments but 4 were given
Python - TypeError: generateID() takes 3 positional arguments but 4 were given
我的脚本包含 4 个 classes 和 1 个接口。我有一个方法 generateID
,它根据 outputmode
、一个模式 (modeCB
) 和一个数据帧 (data_h_f
) 生成一个 ID。当我执行 class 时出现此错误:
TypeError: generateID() takes 3 positional arguments but 4 were given
我是初学者 python 尤其是面向对象的编程,我不知道我的脚本设计得好不好。我的方法有 3 个参数 generateID()
,每个地方都有 3 个参数。
class OutputMode(object):
def __init__(self,name,startTime,intervalSeconds,timezone):
...
class IDCalculation_I:
def generateID(outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
def generateID(outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
def generateID(outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)
def main():
outputMode = OutputMode('EEA','06:00',8*3600,pytz.timezone('Europe/Paris'))
f1 = Fingerprinter(outputMode, CONST_MODE_CONT)
t = f1.generateID(outputMode,CONST_MODE_CONT,data_h_df)
if __name__ == '__main__':
main()
class IDCalculation_I:
def generateID(self,outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
def generateID(self, outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
def generateID(self,outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)
您忘记添加 self
。或者如果你不想添加 self
.
使用 @staticmethod
装饰器
class IDCalculation_I:
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)
我的脚本包含 4 个 classes 和 1 个接口。我有一个方法 generateID
,它根据 outputmode
、一个模式 (modeCB
) 和一个数据帧 (data_h_f
) 生成一个 ID。当我执行 class 时出现此错误:
TypeError: generateID() takes 3 positional arguments but 4 were given
我是初学者 python 尤其是面向对象的编程,我不知道我的脚本设计得好不好。我的方法有 3 个参数 generateID()
,每个地方都有 3 个参数。
class OutputMode(object):
def __init__(self,name,startTime,intervalSeconds,timezone):
...
class IDCalculation_I:
def generateID(outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
def generateID(outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
def generateID(outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)
def main():
outputMode = OutputMode('EEA','06:00',8*3600,pytz.timezone('Europe/Paris'))
f1 = Fingerprinter(outputMode, CONST_MODE_CONT)
t = f1.generateID(outputMode,CONST_MODE_CONT,data_h_df)
if __name__ == '__main__':
main()
class IDCalculation_I:
def generateID(self,outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
def generateID(self, outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
def generateID(self,outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)
您忘记添加 self
。或者如果你不想添加 self
.
@staticmethod
装饰器
class IDCalculation_I:
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
pass
class IDCase1(IDCalculation_I):
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
...
class Fingerprinter(object):
def __init__(self,outputMode,modeCB=CONST_MODE_CONT):
self._modeCB = modeCB
self._outputMode = outputMode
@staticmethod
def generateID(outputMode,modeCB,data_h_df):
pass
def run(self):
return self.generateID(outputMode,modeCB,data_h_df)