python的类变量和成员变量用法实例教程
作者:shichen2014 发布时间:2023-10-26 01:09:58
标签:python,变量,用法
本文实例形式讲解了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的类变量和成员变量用法有所帮助。


猜你喜欢
- 先上图片词云图需要模板pip install jiebapip install wordcloud还需要安装另外两个东西这两个我也不太懂借鉴
- 前言在使用Python进行网络编程或者爬取一些自己感兴趣的东西时,总避免不了进行一些数据传输、存取等问题,Python的文件对象以及其他扩展
- 0. 前言数据处理过程中,可视化可以更直观得感受数据,因此打算结合自己的一些实践经理,以效果为准写这篇博客。内容应该会不断扩充。1. mat
- 分享mysql 5.7 docker 主从复制架构搭建教程,供大家参考,具体内容如下环境版本:MySQL : 5.7.13Doc
- 本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下:说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时
- 聚类今天说K-means聚类算法,但是必须要先理解聚类和分类的区别,很多业务人员在日常分析时候不是很严谨,混为一谈,其实二者有本质的区别。分
- 问题定义一个int型的一维数组,包含40个元素,用来存储每个学员的成绩,循环产生40个0~100之间的随机整数,(1)将它们存储到一维数组中
- 在找寻材料的时候,会看到一些暂时用不到但是内容不错的网页,就这样关闭未免浪费掉了,下次也不一定能再次搜索到。有些小伙伴会提出可以保存网页链接
- 作用:用ASP程序将页面中的电话号码生成图片格式。 代码如下:<% Call Com_CreatValidCode
- 值得庆幸的是,我们可以通过数组的 slice 方法将 arguments 对象转换成真正的数组: var args = Array.prot
- 最近的uniapp开发中遇到了H5调微信授权登录的业务,记录一下解决方法微信授权微信授权分为两种类型:静默授权:scope=snsapi_b
- golang支持两种随机数生成方式:math/rand // 伪随机cr
- HTML5 越来越引起人们的关注,苹果甚至将 HTML5 视为 Flash 的掘墓人 。然而,作为一种尚未成型的技术,HTML5 对很多人来
- 引言python的一个优势是有着大量自带和在线的模块(module)资源,可以提供丰富的功能,在使用这些模块的时候,如果每次都去网站找在线文
- 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容加密:C:\WIND
- Tangram官方网站。http://tangram.baidu.com/tangram/围观社区:简易社区,直接使用tieba。反馈的信息
- 本文实例为大家分享了JS+DIV实现拖动效果的具体代码,供大家参考,具体内容如下效果图思路代码<!DOCTYPE html>&l
- (一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered
- 本文实例为大家分享了Python感知器算法实现的具体代码,供大家参考,具体内容如下先创建感知器类:用于二分类# -*- coding: ut
- 上一篇相关文章python_tkinter弹出对话框创建需要的可以参考一下1.fledialog对话框示例:askopenfilename(