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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 教程总纲:http://www.runoob.com/python/python-tutorial.html 进阶...
    健康哥哥阅读 2,095评论 1 3
  • python 中变量的命名规范 模块名: 小写字母,单词之间用_分割 ad_stats.py 包名: 和模块名一样...
    步_尘阅读 2,553评论 0 0
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,957评论 1 10
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,401评论 0 3
  • 当窗外最后一片泛黄的叶子凋零,秋已悄然离去。空气中弥漫的忧伤渐渐逝去,记忆也开始飘零。 秋走得如此决绝,随它飘离的...
    一颗酸梅阅读 396评论 0 2