python类继承顺序
我有一个test.py文件python类继承顺序,python,inheritance,declaration,Python,Inheritance,Declaration,我有一个test.py文件 class A(B): def display(self): print ("In A") class B: def display(self): print ("In B") 我在运行它时遇到以下错误 回溯(最近一次呼叫最后一次): 有人能详细解释为什么会发生这种奇怪的错误吗?之所以会发生这种情况,是因为python是自上而下解释的。在第一个示例中定义class A(B)的行中,python尚未读取class B 在第二个示例中,B在
class A(B):
def display(self):
print ("In A")
class B:
def display(self):
print ("In B")
我在运行它时遇到以下错误
回溯(最近一次呼叫最后一次):
有人能详细解释为什么会发生这种奇怪的错误吗?之所以会发生这种情况,是因为python是自上而下解释的。在第一个示例中定义
class A(B)
的行中,python尚未读取class B
在第二个示例中,
B
在class A(B)
行中已经知道。这就是它运行的原因。很简单:当python计算类A(B):
B仍然没有定义
不幸的是,python没有类原型(或转发声明)
但是,只有当您有两个类需要显式地相互指向时,这才是一个问题。因为Python在定义它之前不知道
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")