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中类变量和实例变量详解相关推荐

  1. python hashlib_Python hashlib模块实例使用详解

    这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...

  2. Python中类、对象与self详解

    先介绍一下python中的类与对象/实例.然后详细说明self.说明:对象等同实例,本文称呼不一致时请自行统一 [一]类与对象/实例 1.类 (1)类由名称.属性.方法三部分组成 (2)类是抽象模板, ...

  3. python中的class怎么用_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  4. python中class变量_对python 中class与变量的使用方法详解

    python中的变量定义是很灵活的,很容易搞混淆,特别是对于class的变量的定义,如何定义使用类里的变量是我们维护代码和保证代码稳定性的关键. #!/usr/bin/python #encoding ...

  5. python定义静态变量_对Pyhon实现静态变量全局变量的方法详解

    python不能像C++一样直接定义一个static变量或者通过extern来导入别的库的变量而实现数据共享,但是python的思想是通过模块化来解决这个问题,就是通过模块来实现全局变量. 首先新建一 ...

  6. python 类可以调用实例变量_python面向对象中类对象、实例对象、类变量、实例变量、类方法、实例方法、静态方法...

    1. 类对象和实例对象 Python中一切皆对象,Python类本身也是一种对象,类定义完成后,会在当前作用域中定义一个以类名为名字的命名空间.类对象具有以下两种操作: 可以通过"类名()& ...

  7. python装饰器实例-python装饰器实例大详解

    原标题:python装饰器实例大详解 一.作用域 在python中,作用域分为两种:全局作用域和局部作用域. 全局作用域是定义在文件级别的变量,函数名.而局部作用域,则是定义函数内部. 关于作用域,我 ...

  8. Java中的宏变量,宏替换详解。

    转载自 Java中的宏变量,宏替换详解. 群友在微信群讨论的一个话题,有点意思,特拿出来分享一下. 输出true false 来看下面这段程序,和群友分享的大致一样. public static vo ...

  9. python包mdure_Python hashlib模块实例使用详解

    这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...

最新文章

  1. iOS处理高并发量的数据请求和数据集合的对应关系
  2. Vijos1683 有根树的同构问题
  3. JAVA进阶教学之(Object类的toString方法)
  4. oracle rowed,oracle bitmap索引内部揭密,欢迎补充
  5. 二级VB培训笔记08:公共基础知识
  6. 人工智能在fpga的具体应用_“基于FPGA的人工智能应用技术师资培训”圆满落幕!...
  7. 转:Windows下WSH/JS实现SVN服务器钩子脚本阻止提交空日志信息和垃圾文件
  8. 拓端tecdat|R语言Lasso回归模型变量选择和糖尿病发展预测模型应用(含练习)
  9. vfp邮件.html格式,VFP 实现自动发邮件代码
  10. 2012年中国40位40岁以下的商界精英榜单
  11. 天翼对讲机写频软件_手台对讲机应该怎么选?
  12. C语言实现万年历记事本,简单的日历记事本jQuery插件e-calendar(带样式美化)
  13. 基于Arduino、ESP8266的物联网项目开发方案整理、毕业设计(第二波)
  14. golang 单元测试和性能测试
  15. MySQL 批量插入数据,一次插入多少行数据效率最高?
  16. jmeter beanshell关于小数参数定义转化
  17. 【海大838】22年考研真题及解析
  18. php动画效果,动画效果总结
  19. centos 安装、配置metis
  20. 基于python编写的RAT(Remote Administration Tool)——Stitch

热门文章

  1. 西南政法大学计算机课程要求,新高考西南政法大学需要选哪些课程?附西南政法大学选科要求...
  2. Python网络爬虫实战(四)模拟登录
  3. 在GIS中用ggmap地理空间数据分析
  4. 数字孪生风机设备,智慧风电 3D 可视化智能运维
  5. echarts 3d地图加动画效果
  6. 蓝牙远程打卡java_这些“高级手段”里 我居然只用过蓝牙打卡……
  7. 在网站中插入 英文地图非谷歌
  8. Android开发 :调用系统相机拍照保存照片并显示在当前界面
  9. Android:安卓学习笔记之navigation的简单理解和使用
  10. PHP读和写Excel文件