回答

收藏

使用 __init__() 方法理解 Python super()

技术问答 技术问答 300 人阅读 | 0 人回复 | 2023-09-12

试图了解super(). 从外观上看,可以创造两个子类。
5 d* M- y; `1 v, f我想知道以下 2 个子类之间的实际区别。7 x8 P7 }, i1 U* t& B9 P9 A/ @4 R
    class Base(object):    def __init__(self):        print "Base created"class ChildA(Base):    def __init__(self):        Base.__init__(self)class ChildB(Base):    def __init__(self):        super(ChildB,self).__init__()ChildA() ChildB()
    % S9 Q6 y5 U0 f! X5 D
               5 V' g" ~9 c* g4 U. i' V9 R) T9 o
    解决方案:                                                                % y( Y+ Q4 _4 p& E. T5 o
                                                                super()让你避免显式引用基类。但主要优点是多重继承会导致各种有趣的事情。如果你还没有,请参考super 标准文件。
1 ]! o% w3 k3 N4 o请注意,Python 3.0 中的语法发生了变化super().__init__():你可以说super(ChildB,self).__init__()哪个 IMO 更好。标准文档还参考了使用指南,super()这个指南很容易解释。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则