在下面的例子中,是否有一个神奇的词我可以代替<ChildClass>那个像超级的相反的作品?
class Parent(object):
def __init__(self):
print <ChildClass>.x
class someChild(Parent):
x = 10
Run Code Online (Sandbox Code Playgroud)
这是一个愚蠢的例子,但它显示了我的意图.顺便说一下,使用someChild不起作用,因为有很多子类.
我能想到的唯一解决方案是在每个子类中都有一个构造函数,它调用Parent的构造函数并引用自身(甚至传递x),但我想避免在每个子元素中都有构造函数.
刚刚使用有什么问题self.x?
class Parent(object):
x = None # default value
def __init__(self):
print self.x
class someChild(Parent):
x = 10
def __init__(self):
Parent.__init__(self)
class otherChild(Parent):
x = 20
def __init__(self):
Parent.__init__(self)
a = someChild()
# output: 10
b = otherChild()
# output: 20
Run Code Online (Sandbox Code Playgroud)
注意这是如何工作的,即使Parent有一个类属性x(None在上面的例子中) - 孩子的优先权.