博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python的学习(二十一)----Python的静态变量
阅读量:5280 次
发布时间:2019-06-14

本文共 982 字,大约阅读时间需要 3 分钟。

前段时间在论坛里面有人提问说,

class foo():

member1
member2
...
self.member1
foo.member2

其中的两个成员member1, member2有什么区别。。。这才知道python中也有自己的全局静态变量。

实例的属性是实例的,如上class中的member1,对它进行+/-操作时,只会对一个相应对象实例产生影响,(其类和该类的其它实例的不受影响)。

如果类的属性是 mutable 对象的话,对此对象*本身*的修改会反映到其他所有实例。python 中定义的静态成员变量,就是类的变量, 只能通过 类.变量名的形式获取

类变量是该类的所有对象共享的变量成员,

class A:     a1 = 0     def __init__(self, a2):         self.a2 = a2      def setData(self, a3):         self.a3 = a3      def show(self):         print 'A1:%s,a1:%s,a2:%s,a3:%s' %(A.a1, self.a1, self.a2, self.a3)  if __name__ == '__main__':     obj1 = A(1)     obj2 = A(2)     obj3 = A(3)      obj1.setData(1)     obj2.setData(2)     obj3.setData(3)      obj1.a1 = 1     obj2.a1 = 2     obj3.a1 = 3          A.a1 = 1     A.a2 = 2     A.a3 = 3     obj1.show()     obj2.show()     obj3.show()     print 'A1:%s,A2:%s,A3:%s' %(A.a1, A.a2, A.a3)
输出结果:
A1:1,a1:1,a2:1,a3:1A1:1,a1:2,a2:2,a3:2A1:1,a1:3,a2:3,a3:3A1:1,A2:2,A3:3

转载于:https://www.cnblogs.com/chenjianhong/p/4144703.html

你可能感兴趣的文章
MetaSploit攻击实例讲解------社会工程学set攻击(kali linux 2016.2(rolling))(详细)...
查看>>
Lucene3.6第一篇--创建索引
查看>>
代理服务器
查看>>
一些可能用得到软件
查看>>
NHibernate系列文章二:创建NHibernate工程
查看>>
跳跃的杰克(51nod 1615)
查看>>
php while循环 指定显示内容 例如不想显示前10条和后10条
查看>>
mongodb导入json文件(WINDOWS)
查看>>
Legal or Not (拓扑排序判环)
查看>>
构造方法调用顺序
查看>>
Xcode 10 打包 运行在iOS9上崩溃
查看>>
codeforces A. Supercentral Point 题解
查看>>
mac 80端口映射 配置
查看>>
内部类
查看>>
linux简介
查看>>
倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_数组
查看>>
SpringBoot | 第十三章:测试相关(单元测试、性能测试)
查看>>
phpunit 单元测试框架-代码覆盖率
查看>>
oracle 定时备份文件,
查看>>
执行robot framework 的测试用例 命令行pybot使用方式
查看>>