python中类变量和实例变量详解
python中类变量和实例变量详解
在了解类变量和实例变量之前,首先要知道类变量和实例变量的定义。
类变量:可在类的所有实例之间共享的值,就是指不是单独分配给每个实例,实例可以调用类变量。
实例变量:实例化之后,每个实例单独拥有的变量,类不能直接调用实例变量。
一、基础的类变量和实例变量
如下示例:num代表类变量,name代表实例变量。
class Test(object):num=0def __init__(self,name):self.name=nameTest.num += 1
if __name__=="__main__":print(Test.num)t1=Test('jack')print(Test.num)t2=Test('lucy')print(t1.name,t1.num)print(t2.name,t2.num)
二、在类的外部添加变量
在类的外部也可以对类添加类变量或实例变量。
class Test(object):num=0def __init__(self,name):self.name=nameTest.num += 1
if __name__=="__main__":t1=Test('jack')t2=Test('lucy')Test.class_str="添加类变量"print(Test.class_str)print(t1.class_str)print(t2.class_str)#添加实例变量t1.age = 20
三、变量是不是随意添加?
当不对类进行限制时,可以随便对类进行添加变量,使用__slots__可以对实例变量做限制:
class Test(object):age = 1__slots__ = ["name","num"]def __init__(self,name):self.name = nameTest.age += 1if __name__=="__main__":# print(Test.num)t1=Test('jack')# print(Test.num)t2=Test('lucy')# print(t1.name,t1.num)# print(t2.name,t2.num)Test.class_str="添加类变量"print(Test.class_str)print(t1.class_str)print(t2.class_str)t1.age = 20 #报错,此时不能再添加实例属性print(Test.age)
python中类变量和实例变量详解相关推荐
- python hashlib_Python hashlib模块实例使用详解
这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...
- Python中类、对象与self详解
先介绍一下python中的类与对象/实例.然后详细说明self.说明:对象等同实例,本文称呼不一致时请自行统一 [一]类与对象/实例 1.类 (1)类由名称.属性.方法三部分组成 (2)类是抽象模板, ...
- python中的class怎么用_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python中class变量_对python 中class与变量的使用方法详解
python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...
- python定义静态变量_对Pyhon实现静态变量全局变量的方法详解
python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...
- python 类可以调用实例变量_python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法...
1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过"类名()& ...
- python装饰器实例-python装饰器实例大详解
原标题:python装饰器实例大详解 一.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我 ...
- Java中的宏变量,宏替换详解。
转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...
- python包mdure_Python hashlib模块实例使用详解
这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...
最新文章
- iOS处理高并发量的数据请求和数据集合的对应关系
- Vijos1683 有根树的同构问题
- JAVA进阶教学之(Object类的toString方法)
- oracle rowed,oracle bitmap索引内部揭密,欢迎补充
- 二级VB培训笔记08:公共基础知识
- 人工智能在fpga的具体应用_“基于FPGA的人工智能应用技术师资培训”圆满落幕!...
- 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
- 拓端tecdat|R语言Lasso回归模型变量选择和糖尿病发展预测模型应用(含练习)
- vfp邮件.html格式,VFP 实现自动发邮件代码
- 2012年中国40位40岁以下的商界精英榜单
- 天翼对讲机写频软件_手台对讲机应该怎么选?
- C语言实现万年历记事本,简单的日历记事本jQuery插件e-calendar(带样式美化)
- 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第二波)
- golang 单元测试和性能测试
- MySQL 批量插入数据,一次插入多少行数据效率最高?
- jmeter beanshell关于小数参数定义转化
- 【海大838】22年考研真题及解析
- php动画效果,动画效果总结
- centos 安装、配置metis
- 基于python编写的RAT(Remote Administration Tool)——Stitch
热门文章
- 西南政法大学计算机课程要求,新高考西南政法大学需要选哪些课程?附西南政法大学选科要求...
- Python网络爬虫实战(四)模拟登录
- 在GIS中用ggmap地理空间数据分析
- 数字孪生风机设备,智慧风电 3D 可视化智能运维
- echarts 3d地图加动画效果
- 蓝牙远程打卡java_这些“高级手段”里 我居然只用过蓝牙打卡……
- 在网站中插入 英文地图非谷歌
- Android开发 :调用系统相机拍照保存照片并显示在当前界面
- Android:安卓学习笔记之navigation的简单理解和使用
- PHP读和写Excel文件