TypError 4 而不是 super().__init_ call 中预期的 3 个参数

问题描述 投票:0回答:1

错误信息

我收到这条消息

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__
是不可能的吗?

python init super
1个回答
0
投票

解决方案是在

self
调用中省略
super().__init__
参数:

def __init__(self, stm):
        super().__init__(self.event_pattern, stm)

提示来自 chepner 看到他的评论。

© www.soinside.com 2019 - 2024. All rights reserved.