gpt4 book ai didi

python类的继承顺序

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:57 26 4
gpt4 key购买 nike

我有一个文件test.py

class A(B):
def display(self):
print ("In A")

class B:
def display(self):
print ("In B")

运行时出现以下错误追溯(最近一次通话最后一次):

File "/Users/praveen/Documents/test.py", line 1, in <module>
class A(B):
NameError: name 'B' is not defined

但是如果我改变声明的顺序,它运行没有任何错误

class B:
def display(self):
print ("In B")

class A(B):
def display(self):
print ("In A")

谁能详细解释为什么会出现这种奇怪的错误?

最佳答案

发生这种情况是因为 python 被解释为自上而下。在第一个示例中定义 class A(B) 的行中,class B 尚未被 python 读取。

在您的第二个示例中,B 已在 class A(B) 行中已知。这就是它运行的原因。

关于python类的继承顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48419414/

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