Python变量访问范围
来源:互联网 发布:java xml与json互转 编辑:程序博客网 时间:2024/06/05 02:17
case1:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''class MemberCounter(object): members=-1 def count(self): self.members+=1if __name__ == "__main__": m1=MemberCounter() m1.count() print "m1.members is %d" %(m1.members) m2=MemberCounter() print "m2.members is %d" %(m2.members) m2.count() m2.count() print "m1.members is %d" %(m1.members) print "m2.members is %d" %(m2.members)运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''class MemberCounter(object): members=-1 def count(self): MemberCounter.members+=1if __name__ == "__main__": m1=MemberCounter() m1.count() print "m1.members is %d" %(m1.members) m2=MemberCounter() print "m2.members is %d" %(m2.members) m2.count() m2.count() print "m1.members is %d" %(m1.members) print "m2.members is %d" %(m2.members)
运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''class MemberCounter(object): members=-1 def count(self): MemberCounter.members+=1if __name__ == "__main__": m1=MemberCounter() m1.count() print "m1.members is %d" %(m1.members) m2=MemberCounter() print "m2.members is %d" %(m2.members) m1.members=8 m2.count() m2.count() print "m1.members is %d" %(m1.members) print "m2.members is %d" %(m2.members)
运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''class MemberCounter(object): members=-1 def count(self): self.members+=1if __name__ == "__main__": m1=MemberCounter() m1.count() print "m1.members is %d" %(m1.members) print MemberCounter.members
运行结果如下:
case2:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''num=100class Test(object): def printNum(self): num=20 print num if __name__ == "__main__": test=Test() print num test.printNum() print num
运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''num=100class Test(object): def printNum(self): global num num=20 print num if __name__ == "__main__": test=Test() print num test.printNum() print num运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''num=100class Test(object): def printNum(self): print num if __name__ == "__main__": test=Test() print num test.printNum()运行结果如下:
# -*- coding: utf-8 -*-'''Created on 2016年1月29日@author: zhouzhou'''num=100class Test(object): def printNum(self): print num num=200 if __name__ == "__main__": test=Test() print num test.printNum()
结论:
1、在一个类中定义变量,如果该变量定义为:类名.变量名 ——则此变量被所有实例共享。一旦实例重绑定变量后,则此变量为该实例所私有。此处定义的静态变量。若定义为:self.变量名——则此变量为各实例所私有。参考文章:python中的实例方法、静态方法、类方法、类变量和实例变量浅析
2、关于全局变量与局部变量,强烈建议不要出现同名的情况,局部变量在使用前需先定义,如要使用全局变量,可用global关键字声明。关于全局变量与局部变量的区别,可参考:Python语法基础——关于全局变量与局部变量
0 0
- Python变量访问范围
- scala变量访问范围
- C++类中成员变量和函数的访问范围
- 变量范围
- Python轻松入门-15 变量的作用范围
- delphi单元的变量和函数访问权限问题(访问范围/生命周期)
- python父类子类变量访问不一致
- python使用锁访问共享变量
- Python 访问私有变量和私有方法
- 变量作用范围
- javascript 中的变量范围
- 变量取值范围
- Javascript变量作用范围
- js中的变量范围
- php变量作用范围
- 整型变量范围
- 变量取值范围
- C51 变量范围
- 博客发在win10.me
- SOFT_INPUT_ADJUST_RESIZE
- 月TOP 模型-季度到年
- (翻译)2016美国数学建模MCM D题 翻译:测量协会信息网络的演变和影响
- Android 打包自定义JAR包
- Python变量访问范围
- Android 随输查询AutoCompleteTextView
- 使用Solr索引MySQL数据
- webview内容适应
- AJAX Validation
- SDK Hello world1
- CSS背景属性Background详解
- 数据结构:JavaScript实现队列
- 基于Spring MVC的Web应用开发(5) - Redirect