使用 __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()这个指南很容易解释。 |
|
|
|
|
|