class Human:
population = 0
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
population += 1
human = Human("Name", 12, "M")
print(Human.population)
上面的代码引发UnboundLocalError
异常。
完整声明: UnboundLocalError: local variable 'population' referenced before assignment
如何解决此问题?
答案 0 :(得分:3)
人类是类属性,可通过类中的Human.population
访问
可以在课堂外通过human.population
或Human.population
来访问
class Human:
population = 0
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
#Access class attribute via ClassName inside class definition
Human.population += 1
human = Human("Name", 12, "M")
#Access class attribute via ClassName outside class definition
print(Human.population)
#Access class attribute via Class instance outside class definition
print(human.population)
输出将为
1
1
答案 1 :(得分:1)
类变量基本上是该类使用的变量,它们是静态
要了解更多信息,可以查看此wikipedia page。
要使用类变量,您基本上必须输入类的名称,点和变量的名称
在您的情况下,类别为人类,变量为人口。因此答案应该是 Human.population + = 1 ,而不是 population + = 1
仅需使用 Human.population
即可在课堂外使用