python 也可以定义静态成员变量,就是类的变量。
注意python的静态成员变量只能通过 类.变量名 的形式获取
看下面例子:
class ClassName:
"""docstring for ClassName"""
arg=0
def __init__(self, arg):
self.arg = arg
obj = ClassName(2)
print(obj.arg)
print(ClassName.arg)
输出结果:
2
0
[Finished in 0.1s]
说明,通过 Object.var 和ClassName.var 访问的并不是同一个数据。上例中初始化函数改变的是self.arg这个变量,self就相当于Object 。arg和self.arg本身并不是一个变量。在Python的成员函数中访问arg的正确形式应该是ClassName.arg 。
见下例:
class ClassName:
"""docstring for ClassName"""
arg=0
def __init__(self, arg):
ClassName.arg = arg
obj = ClassName(2)
print(obj.arg)
print(ClassName.arg)
输出:
2
2
[Finished in 0.1s]
静态变量的用处:
class ClassName:
"""docstring for ClassName"""
COUNT=0
def __init__(self, arg):
self.arg = arg
ClassName.COUNT+=1
obj1 = ClassName(1)
obj2 = ClassName(2)
obj3 = ClassName(3)
print(ClassName.COUNT)
# 输出 3