gpt4 book ai didi

python - 在嵌套类中使用 super

转载 作者:行者123 更新时间:2023-11-28 19:47:41 24 4
gpt4 key购买 nike

我对 python 2.7.12 中的以下错误感到困惑假设我们在一个类中有一个类定义,类似于这样:

class C(object):
def __init__(self):
print "class C"


class D(object):
def __init__(self):
print "class D"


class A(D):

class B(C):
def __init__(self):
# Strangely here B is "not defined", why?
super(B, self).__init__()
print "class B"

def __init__(self):
super(D, self).__init__()
print "class A"

def do_something(self):
b_class = self.B()
print "b_class within A : {}".format(b_class)


a_class = A()
a_class.do_something()

但是如果我们将类B的定义提取到类A的范围之外,一切正常。

在嵌套类中调用时,我们是否需要以不同方式使用“super”?我不明白为什么它的用法在嵌套类内部或外部会有所不同。有什么指点吗?

最佳答案

问题不是子类或父类(super class),而是嵌套。 B 本身没有定义,只有 A.B 是。

请注意,尽管如此,在 Python 中几乎没有嵌套类的充分理由。

关于python - 在嵌套类中使用 super,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40466406/

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