我收到这条消息
File ...
super().__init__(self, self.event_pattern, stm)
TypeError: RegExpTokenizer.__init__() takes 3 positional arguments but 4 were given
class BaseClassName():
def __init__(self, event_pattern, stm):
self.__eventPattern = event_pattern
self.__stm = stm
class SomeClassName(BaseClassName):
event_pattern = {
'name1': "value1",
'name2': "value2",
'name3': "value3",
'name4': "value4",
'name5': "value5"
}
def __init__(self, stm):
super().__init__(self, self.event_pattern, stm)
对
super().__init__
的调用只需要3个预期的参数,
抱怨的 4 参数在哪里?我看不到它。
我试着编译代码。
在
variable(event_pattern)
方法中引用类__init__
是不可能的吗?
解决方案是在
self
调用中省略super().__init__
参数:
def __init__(self, stm):
super().__init__(self.event_pattern, stm)
提示来自 chepner 看到他的评论。