如何从父方法引用子类?

Joh*_*ers 4 python

在下面的例子中,是否有一个神奇的词我可以代替<ChildClass>那个像超级的相反的作品?

class Parent(object):

    def __init__(self):
        print <ChildClass>.x

class someChild(Parent):
    x = 10
Run Code Online (Sandbox Code Playgroud)

这是一个愚蠢的例子,但它显示了我的意图.顺便说一下,使用someChild不起作用,因为有很多子类.

我能想到的唯一解决方案是在每个子类中都有一个构造函数,它调用Parent的构造函数并引用自身(甚至传递x),但我想避免在每个子元素中都有构造函数.

Dav*_*son 7

刚刚使用有什么问题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在上面的例子中) - 孩子的优先权.