Python中的静态成员变量

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
    原文作者:木兮家先生
    原文地址: https://www.jianshu.com/p/bffa6cda28a0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞