Python的NameError:name 'number' is not defined 解决办法

class people:
    #所有的实例都会共享
    number = 100 #血量
    #构造函数,初始化的方法,当创建一个类的时候,首先会调用它
    def __init__(self,name,age):
        self.name = name
        self.age  = age
    def display(self):
        print('number = :',number)
    def display_name(self):
        print(self.name)

直接调display() 报错

p1.display()
NameError                                 Traceback (most recent call last)
 in ()
----> 1 p1.display()

 in display(self)
      9         self.age  = age
     10     def display(self):
---> 11         print('number = :',number)
     12     def display_name(self):
     13         print(self.name)

NameError: name 'number' is not defined

是由于number 没有被定义,因为number是people类里面的,所以我们需要定义number,即people.number

class people:
    #所有的实例都会共享
    number = 100 #血量
    #构造函数,初始化的方法,当创建一个类的时候,首先会调用它
    def __init__(self,name,age):
        self.name = name
        self.age  = age
    def display(self):
        print('number = :',people.number)
    def display_name(self):
        print(self.name)
  p1.display()

输出如下结果
number = : 100

你可能感兴趣的:(Python)