相比于C++语言,每个类可以有类成员变量,也可以有对象的成员变量,类成员变量需要用static修饰;在python中,也有两种变量
python中类成员变量是不用self修饰的,也就是说对象成员变量需要用self.来修饰,具体可以看代码。
class person:
population = 0
def __init__(self,name):
self.name=name
self.population+=1
print self.population
print person.population
peter = person('peter')
print peter.population
print person.population
line2: population = 0,这个是类的变量。无论在哪里调用,都需要用person.population来引用
line6: self.population +=1,这个地方调用的就是对象的变量。对象的变量会在类的变量的基础上执行加一,这是在对象变量没有被赋值的前提下。
这段代码的执行结果是
1
0
1
0
还会有一个全局的变量来干扰
class person:
population = 0
def __init__(self,name):
self.name=name
self.population+=1
print self.population
print person.population
print population
population = 2
peter = person('peter')
print peter.population
print person.population
print population
代码的运行结果是
1
0
2
1
0
2