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 Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
Jul 12 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
Django数据库连接丢失问题的解决方法
Dec 29 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
Python 支付整合开发包的实现
Jan 23 Python
Python自动化运维之Ansible定义主机与组规则操作详解
Jun 13 Python
python向字符串中添加元素的实例方法
Jun 28 Python
keras输出预测值和真实值方式
Jun 27 Python
Python经典五人分鱼实例讲解
Jan 04 Python
Django如何重置migration的几种情景
Feb 24 Python
解析python中的jsonpath 提取器
Jan 18 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传值方式和ajax的验证功能
2017/03/27 PHP
laravel框架使用FormRequest进行表单验证,验证异常返回JSON操作示例
2020/02/18 PHP
详解php反序列化
2020/06/10 PHP
prototype 的说明 js类
2006/09/07 Javascript
JavaScript 设计模式 富有表现力的Javascript(一)
2010/05/26 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
JavaScript之编码规范 推荐
2012/05/23 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
js实现文件上传表单域美化特效
2015/11/02 Javascript
教你用javascript实现随机标签云效果_附代码
2016/03/16 Javascript
Laravel中常见的错误与解决方法小结
2016/08/30 Javascript
微信小程序 rpx 尺寸单位详细介绍
2016/10/13 Javascript
Node.js中看JavaScript的引用
2017/04/22 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
Vue封装Swiper实现图片轮播效果
2018/02/06 Javascript
JavaScript变量声明var,let.const及区别浅析
2018/04/23 Javascript
jquery层次选择器的介绍
2019/01/18 jQuery
vue结合element-ui使用示例
2019/01/24 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
react同构实践之实现自己的同构模板
2019/03/13 Javascript
[05:08]顺网杯ISS-DOTA2赛歌 少女偶像Lunar青春演绎
2013/12/05 DOTA
Ubuntu下安装PyV8
2016/03/13 Python
selenium设置proxy、headers的方法(phantomjs、Chrome、Firefox)
2018/11/29 Python
Python3解释器知识点总结
2019/02/19 Python
详解python itertools功能
2020/02/07 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
网络技术支持面试题
2013/04/22 面试题
高中地理教学反思
2014/01/29 职场文书
矿泉水广告词
2014/03/20 职场文书
三方协议书范本
2014/04/22 职场文书
总经理任命书范本
2014/06/05 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
计算机实训报告总结
2014/11/05 职场文书
学校食堂管理制度
2015/08/04 职场文书
Python语言内置数据类型
2022/02/24 Python