gpt4 book ai didi

Python: super 和 __init__() 与 __init__( self )

转载 作者:太空狗 更新时间:2023-10-29 17:03:36 29 4
gpt4 key购买 nike

答:

super( BasicElement, self ).__init__()

乙:

super( BasicElement, self ).__init__( self )

A 和 B 有什么区别?我遇到的大多数示例都使用 A,但我遇到了一个问题,即 A 没有调用父 __init__ 函数,但 B 调用了。为什么会这样?在什么情况下应该使用哪些?

最佳答案

您不需要执行第二种形式,除非 BasicElement 类的 __init__ 以某种方式接受参数。

class A(object):
def __init__(self):
print "Inside class A init"

class B(A):
def __init__(self):
super(B, self).__init__()
print "Inside class B init"

>>> b = B()
Inside class A init
Inside class B init

或者对于需要初始化参数的类:

class A(object):
def __init__(self, arg):
print "Inside class A init. arg =", arg

class B(A):
def __init__(self):
super(B, self).__init__("foo")
print "Inside class B init"

>>> b = B()
Inside class A init. arg = foo
Inside class B init

关于Python: super 和 __init__() 与 __init__( self ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629556/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com