gpt4 book ai didi

python - 如何从父方法引用子类?

转载 作者:太空狗 更新时间:2023-10-30 02:22:11 25 4
gpt4 key购买 nike

在下面的例子中,有没有一个我可以用来代替 <ChildClass> 的魔法词?和 super 正好相反?

class Parent(object):

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

class someChild(Parent):
x = 10

这是一个愚蠢的例子,但它表明了我的意图。顺便说一下,使用 someChild不会工作,因为有很多子类。

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

最佳答案

只使用 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

注意这是如何工作的,即使 Parent 也有一个类属性 x(在上面的例子中是 None)—— child 的优先.

关于python - 如何从父方法引用子类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12103513/

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