如何在Python2.7中将super()与参数一起使用?

2024-10-05 13:19:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我之所以问这个问题,是因为我在google上搜索到的每一个单独的页面似乎都会演变成过于简单的案例或是关于超出范围的细节的随机讨论。在

class Base:
    def __init__(self, arg1, arg2, arg3, arg4):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3
        self.arg4 = arg4

class Child(Base):
    def __init__(self, arg1, arg2, arg3, arg4, arg5):
        super(Child).__init__(arg1, arg2, arg3, arg4)
        self.arg5 = arg5

这就是我试过的。我被告知我需要使用一个类型而不是一个classobj,但我不知道这意味着什么,谷歌也帮不了我。在

我只想让它发挥作用。在Python2.7中正确的做法是什么?在


Tags: selfchildbaseinitdefgoogle页面arg3
1条回答
网友
1楼 · 发布于 2024-10-05 13:19:47

基类必须从object(新样式类)继承,对super的调用应该是super(Child, self)。在

您也不应该将arg5传递给Base的{}。在

class Base(object):
    def __init__(self, arg1, arg2, arg3, arg4):
        self.arg1 = arg1
        self.arg2 = arg2
        self.arg3 = arg3
        self.arg4 = arg4

class Child(Base):
    def __init__(self, arg1, arg2, arg3, arg4, arg5):
        super(Child, self).__init__(arg1, arg2, arg3, arg4)
        self.arg5 = arg5

相关问题 更多 >

    热门问题