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 相关文章推荐
python生成器generator用法实例分析
Jun 04 Python
Python使用lxml模块和Requests模块抓取HTML页面的教程
May 16 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
Pytorch Tensor 输出为txt和mat格式方式
Jan 03 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
python实现提取str字符串/json中多级目录下的某个值
Feb 27 Python
在python里创建一个任务(Task)实例
Apr 25 Python
如何搭建pytorch环境的方法步骤
May 06 Python
如何通过python检查文件是否被占用
Dec 18 Python
Python办公自动化解决world文件批量转换
Sep 15 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
PHP中一个控制字符串输出的函数
2006/10/09 PHP
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
php 清除网页病毒的方法
2008/12/05 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
ThinkPHP3.2框架使用addAll()批量插入数据的方法
2017/03/16 PHP
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
Draggable Elements 元素拖拽功能实现代码
2011/03/30 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
使用JavaScript 实现的人脸检测
2015/03/24 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
bootstrapValidator自定验证方法写法
2016/12/01 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue 项目build错误异常的解决方法
2019/04/22 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
python执行外部程序的常用方法小结
2015/03/21 Python
Python实现线程池代码分享
2015/06/21 Python
深入理解 Python 中的多线程 新手必看
2016/11/20 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python3.6连接Oracle数据库的方法详解
2018/05/18 Python
详解Python3 pandas.merge用法
2019/09/05 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
世界闻名的衬衫制造商:Savile Row Company
2018/07/30 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
小学红领巾广播稿(3篇)
2014/09/13 职场文书
售后客服个人自我评价
2014/09/14 职场文书
2014年医院工作总结
2014/11/20 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
漫画「你在春天醒来」第10卷封面公开
2022/03/21 日漫