我有个档案测试.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)
的行中,python尚未读取class B
。你知道吗在第二个示例中,
B
已经在class A(B)
行中已知。这就是它运行的原因。你知道吗简单:当python对
class A(B):
B的求值仍未定义时不幸的是,python没有类原型(或前向声明)
但这只是一个问题,如果你有两个类需要显式指向对方。你知道吗
相关问题 更多 >
编程相关推荐