python的类变量和成员变量用法实例教程


Posted in Python onAugust 25, 2014

本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值。分享给大家供大家参考。具体如下:

先看看下面这段代码:

class TestClass(object):
  val1 = 100
  
  def __init__(self):
    self.val2 = 200
  
  def fcn(self,val = 400):
    val3 = 300
    self.val4 = val
    self.val5 = 500 
 if __name__ == '__main__':
  inst = TestClass()
   
  print TestClass.val1
  print inst.val1
  print inst.val2
  print inst.val3
  print inst.val4  
  print inst.val5

这里,val1是类变量,可以由类名直接调用,也可以有对象来调用;
val2是成员变量,可以由类的对象来调用,这里可以看出成员变量一定是以self.的形式给出的,因为self的含义就是代表实例对象;
val3不是成员变量,它只是函数fcn内部的局部变量;
val4和val5也都不是成员变量,虽是以self.给出,但并没有在构造函数中初始化。

再看看下面的代码(#号后面的是运行结果):

inst1 = TestClass()
inst2 = TestClass()

print TestClass.val1 # 100
print inst1.val1   # 100

inst1.val1 = 1000  
print inst1.val1   # 1000
print TestClass.val1 # 100

TestClass.val1 =2000 
print inst1.val1   # 1000
print TestClass.val1 # 2000

print inst2.val1   # 2000   

inst3 = TestClass() 
print inst3.val1   # 2000

可以发现:python的类变量和C++的静态变量不同,并不是由类的所有对象共享。类本身拥有自己的类变量(保存在内存),当一个TestClass类的对象被构造时,会将当前类变量拷贝一份给这个对象,当前类变量的值是多少,这个对象拷贝得到的类变量的值就是多少;而且,通过对象来修改类变量,并不会影响其他对象的类变量的值,因为大家都有各自的副本,更不会影响类本身所拥有的那个类变量的值;只有类自己才能改变类本身拥有的类变量的值

希望本文所述实例对于大家理解和掌握Python的类变量和成员变量用法有所帮助。

Python 相关文章推荐
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
Django框架视图函数设计示例
Jul 29 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
python 队列基本定义与使用方法【初始化、赋值、判断等】
Oct 24 Python
Python上下文管理器用法及实例解析
Nov 11 Python
利用python3 的pygame模块实现塔防游戏
Dec 30 Python
Python实现计算长方形面积(带参数函数demo)
Jan 18 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
关于python中模块和重载的问题
Nov 02 Python
Python写的创建文件夹自定义函数mkdir()
Aug 25 #Python
Python中的startswith和endswith函数使用实例
Aug 25 #Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 #Python
Python对小数进行除法运算的正确方法示例
Aug 25 #Python
Python实现的一个自动售饮料程序代码分享
Aug 25 #Python
Python中请使用isinstance()判断变量类型
Aug 25 #Python
Python中变量交换的例子
Aug 25 #Python
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
2012/01/09 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
php实现映射操作实例详解
2019/10/02 PHP
javascript 有趣而诡异的数组
2009/04/06 Javascript
js RuntimeObject() 获取ie里面自定义函数或者属性的集合
2010/11/23 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
vue+elementui实现点击table中的单元格触发事件--弹框
2020/07/18 Javascript
[26:21]浴火之凤-TI4世界冠军Newbee战队纪录片
2014/08/07 DOTA
python装饰器初探(推荐)
2016/07/21 Python
Ubuntu下升级 python3.7.1流程备忘(推荐)
2018/12/10 Python
python框架django项目部署相关知识详解
2019/11/04 Python
python 日志 logging模块详细解析
2020/03/31 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
大学生涯自我鉴定
2014/01/16 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
六查六看剖析材料
2014/02/15 职场文书
写好自荐信需做到的5要点
2014/03/07 职场文书
淘宝好评语大全
2014/05/05 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
争先创优公开承诺书
2014/08/30 职场文书
新生开学寄语大全
2015/05/28 职场文书