python类继承ord

2024-04-19 19:19:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个档案测试.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")

有人能详细解释为什么会发生这种奇怪的错误吗?你知道吗


Tags: inpytestselfdef错误displayline
2条回答

这是因为python从上到下被解释。在第一个示例中定义class A(B)的行中,python尚未读取class B。你知道吗

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

简单:当python对class A(B):B的求值仍未定义时

不幸的是,python没有类原型(或前向声明)

但这只是一个问题,如果你有两个类需要显式指向对方。你知道吗

相关问题 更多 >