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将多个excel文件合并为一个文件
Jan 03 Python
Python键盘输入转换为列表的实例
Jun 23 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
Python使用POP3和SMTP协议收发邮件的示例代码
Apr 16 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
python return逻辑判断表达式实现解析
Dec 02 Python
py-charm延长试用期限实例
Dec 22 Python
python标准库OS模块详解
Mar 10 Python
python线程池 ThreadPoolExecutor 的用法示例
Oct 10 Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 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在各种web服务器的运行模式详解
2013/06/03 PHP
php实现微信公众平台账号自定义菜单类
2015/10/11 PHP
PHP写的简单数字验证码实例
2017/05/23 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
css配合jquery美化 select
2013/11/29 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
jquery使用each方法遍历json格式数据实例
2015/05/18 Javascript
jQuery往textarea中光标所在位置插入文本的方法
2015/06/26 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
bootstrap switch开关组件使用方法详解
2017/08/22 Javascript
详解超简单的react服务器渲染(ssr)入坑指南
2019/02/28 Javascript
[04:09]显微镜下的DOTA2第十二期—NaVi美如画的团战
2014/06/23 DOTA
详解Python中的strftime()方法的使用
2015/05/22 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python实现注册、登录小程序功能
2018/09/21 Python
Linux系统(CentOS)下python2.7.10安装
2018/09/26 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
2019/01/05 Python
Python3中编码与解码之Unicode与bytes的讲解
2019/02/28 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
Win下PyInstaller 安装和使用教程
2019/12/25 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
浅析python 动态库m.so.1.0错误问题
2020/05/09 Python
HTML5如何使用SVG的方法示例
2019/01/11 HTML / CSS
Algenist奥杰尼官网:微藻抗衰老护肤品牌
2017/07/15 全球购物
洛杉矶生活休闲而精致的基础品牌:Mika Jaymes
2018/01/07 全球购物
学生干部学习的自我评价
2014/02/18 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
单位工作证明书格式
2014/10/04 职场文书
高三英语教学计划
2015/01/23 职场文书
2015学校年度工作总结
2015/05/11 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
Java由浅入深通关抽象类与接口(上篇)
2022/04/26 Java/Android