首页 > 解决方案 > UnboundLocalError:在类属性声明中获取异常

问题描述

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

我该如何解决这个问题?

标签: pythonoop

解决方案


Human 是可通过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

推荐阅读