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 相关文章推荐
浅谈Scrapy框架普通反爬虫机制的应对策略
Dec 28 Python
python在非root权限下的安装方法
Jan 23 Python
python如何在列表、字典中筛选数据
Mar 19 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python3实现的反转单链表算法示例
Mar 08 Python
Python数据类型之List列表实例详解
May 08 Python
Python 转换RGB颜色值的示例代码
Oct 13 Python
Pandas —— resample()重采样和asfreq()频度转换方式
Feb 26 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
Apr 03 Python
python实现处理mysql结果输出方式
Apr 09 Python
Python办公自动化之Excel(中)
May 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新手谈谈我的学习心得
2007/02/25 PHP
收集的DedeCMS一些使用经验
2007/03/17 PHP
PHP GD 图像处理组件的常用函数总结
2010/04/28 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
Smarty变量用法详解
2016/05/11 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
深入理解 PHP7 中全新的 zval 容器和引用计数机制
2018/10/15 PHP
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
js实现两点之间画线的方法
2015/05/12 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
基于js 各种排序方法和sort方法的区别(详解)
2018/01/03 Javascript
详解Element-UI中上传的文件前端处理
2019/08/07 Javascript
VUE.js实现动态设置输入框disabled属性
2019/10/28 Javascript
以Python的Pyspider为例剖析搜索引擎的网络爬虫实现方法
2015/03/30 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
css3实现超立体3D图片侧翻倾斜效果
2014/04/16 HTML / CSS
css3 边框、背景、文本效果的实现代码
2018/03/21 HTML / CSS
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
英国时尚饰品和发饰购物网站:Claire’s
2017/07/04 全球购物
法律专业应届生自荐信范文
2014/01/06 职场文书
20年同学聚会感言
2014/02/03 职场文书
秘书英文求职信
2014/04/16 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
公司放假通知怎么写
2015/04/15 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL