Python的学习(二十一)----Python的静态变量
前段时间在论坛里面有人提问说,
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:1
A1:1,a1:2,a2:2,a3:2
A1:1,a1:3,a2:3,a3:3
A1:1,A2:2,A3:3
Python的学习(二十一)----Python的静态变量的更多相关文章
- python3.4学习笔记(二十一) python实现指定字符串补全空格、前面填充0的方法
python3.4学习笔记(二十一) python实现指定字符串补全空格.前面填充0的方法 Python zfill()方法返回指定长度的字符串,原字符串右对齐,前面填充0.zfill()方法语法:s ...
- 二十一. Python基础(21)--Python基础(21)
二十一. Python基础(21)--Python基础(21) 1 ● 类的命名空间 #对于类的静态属性: #类.属性: 调用的就是类中的属性 #对象.属性: 先从自己的内存空间里找名 ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
- Comprehensive learning path – Data Science in Python深入学习路径-使用python数据中学习
http://blog.csdn.net/pipisorry/article/details/44245575 关于怎么学习python,并将python用于数据科学.数据分析.机器学习中的一篇非常好 ...
- Python服务器开发二:Python网络基础
Python服务器开发二:Python网络基础 网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. HTTP是高层协议,而TCP/IP是个协议集,包过许多的子协议.包括: ...
- 说几个python与c区别的地方以及静态变量,全局变量的区别
一: python代码: a = 2 def b(): print a a = 4 print a b() 在b函数中,有a=4这样的代码,说明a是函数b内部的局部变量,而不是外部的那个值为2的全局变 ...
- Python基础学习笔记(一)python发展史与优缺点,岗位与薪资
相信有好多朋友们都是第一次了解python吧,可能大家也听过或接触过这个编程语言.那么到底什么是python呢?它在什么机缘巧合下诞生的呢?又为什么在短短十几年时间内就流行开来呢?就请大家带着疑问,让 ...
- python高级(二)—— python内置序列类型
本文主要内容 序列类型分类: (1)容器序列.扁平序列 (2)可变序列.不可变序列 列表推导式 生成器表达式 元组拆包 切片 排序(list.sort方法和sorted函数) bisect pytho ...
- 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类
static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...
- java学习(四)static静态变量 和this
java中的this /* this:是当前类的对象引用.简单的记,它就代表当前类的一个对象. 注意:谁调用这个方法,在该方法内部的this就代表谁. this的场景: 解决局部变量隐藏成员变量 */ ...
随机推荐
- 快速学习mybatis框架
一.介绍Mybatis(主要从以下两点进行介绍) 1.MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动 ...
- 转载:使用FileReader对象的readAsDataURL方法来读取图像文件
文章转载自:http://blog.okbase.net/jquery2000/archive/1296.html: FileReader对象的readAsDataURL方法可以将读取到的文件编码成D ...
- [Windows Server 2012] PHPWind安全设置
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★[护卫神·V课堂]是护卫神旗下专业提供服务器教学视频的网站,每周更新视频. ★ 本节我们将带领大家:PHPWin ...
- Mysql命令mysql:连接Mysql数据库
mysql命令格式: mysql -h主机地址 -u用户名 -p用户密码 1) 连接到本机上的MYSQL首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p, ...
- 利用open MP获取计算机核心数量的方法
openMP是一款普遍通用的并行计算编程模型,使用它通常能够充分利用多核计算的优势. 以下是一种能够测试核心数量的方法: std::cout << "parallel begin ...
- cmake编译安装mysql
运维开发技术交流群欢迎大家加入一起学习(QQ:722381733) 前言:这里我使用的安装方式是(cmake编译),我选择的版本是:cmake-2.8.8.tar.gz.mysql-5.5.32.ta ...
- Python基础-画菱形
方法一 n = int(input('请输入:')) for i in range(1, n, 2): print(('*'*i).center(n)) for i in reversed(range ...
- 6.3.2 使用struct模块读写二进制文件
使用 struct 模块需要使用 pack() 方法吧对象按指定个数进行序列化,然后使用文件对象的write方法将序列化的结果写入二进制文件:读取时需要使用文件对象的read()方法读取二进制文件内容 ...
- oracle 内部机制-DTRACE
Oracle SQL Tuning and CBO Internals: Based Optimizer with CBO Internals and SQL Tuning Optimization ...
- 搭建strom 的开发环境 - local mode
Setting Up a Development Environment This page outlines what you need to do to get a Storm developme ...