DAY 4. 类变量(属性)和实例变量(属性)

  • 类变量:在所有类的实例之间都可以共享的变量,类变量在所有对象间只保留一份

    • 在类体中定义
    • 类的所有实例对象都可以访问类变量
    • 类变量只能由类修改,实例对象只有读权限
    • 使用对象名.类变量名 = new value不是在使用对象修改类属性,而是给对象添加了一个新属性
class Demo:# 类变量classVar = 0def __init__(self):self.instanceVar = 1if __name__ == '__main__':demo1 = Demo()demo2 = Demo()# 类的所有实例对象都可以访问类变量print(demo1.classVar)  # 0print(demo2.classVar)  # 0# 由类修改类变量Demo.classVar = 2print(demo1.classVar)  # 2print(demo2.classVar)  # 2# 注意,这样不是在修改类变量,而是给实例对象添加了一个属性demo1.classVar = 2print(demo1.classVar)  # 2
  • 实例变量:实例化对象时,每个对象都会有自己的实例变量,各实例变量之间不影响

    • 在构造函数中定义
    • 实例变量由实例对象修改,类修改实例变量没意义
    • 每个实例对象有一份实例变量
class Demo:# 类变量classVar = 0def __init__(self):# 实例变量self.instanceVar = 1if __name__ == '__main__':print(demo1.instanceVar)  # 1print(demo2.instanceVar)  # 1# 各实例对象间的实例变量互相不影响demo1.instanceVar = 2print(demo1.instanceVar)  # 2print(demo2.instanceVar)  # 1# 用类修改实例变量没意义Demo.instanceVar = 2print(demo1.instanceVar)  # 2print(demo2.instanceVar)  # 1

4.1 总结

变量(属性) 定义 读取 修改 内存
类变量 在类体中定义 className.classVarobjectName.classVar className.classVar = new value 只保留一份
实例变量 在构造函数中定义 objectName.instanceVar objectName.instanceVar = new value 每个实例对象保存一份,各对象间互不影响

**注意:**使用objectName.classVar = new value是给对象添加了一个新属性

参考文章:

GitHub 关于python的面试题

python(类和对象之类属性和类变量)

图解Python 【第五篇】:面向对象-类-初级基础篇

python 类变量(属性)和实例变量(属性相关推荐

  1. Python类属性与实例变量

    概念 类像一个饼干模板,用这个模板我们可以制作出各种各样的饼干(实例) 类属性是是该类所有实例对象共享的属性 实例变量是每个实例独有的数据 class Box:unit = 1def __init__ ...

  2. python 类变量修改_python中类变量与成员变量的使用注意点总结

    前言 最近在用python写一个项目,发现一个很恶心的bug,就是同由一个类生成的两个实例之间的数据竟然会相互影响,这让我非常不解.后来联想到java的类有类变量也有实例变量,因此翻阅了相关资料,发现 ...

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

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

  4. python 类可以调用实例变量_python中的实例方法、静态方法、类方法、类变量和实例变量浅析...

    注:使用的是Python2.7. 一.实例方法 实例方法就是类的实例能够使用的方法.如下: class Foo: def __init__(self, name): self.name = name ...

  5. python中的类实例的属性查找过程

    __getattr__.__getattribute__对属性查找的影响 没有__getxxx__的例子 class Book:press = "人民邮电出版社"class Lan ...

  6. python 类可以调用实例变量_Python实例方法、类方法、静态方法区别详解

    1.关于参数的区别 实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self 类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls 静态方法:定义静 ...

  7. Java静态变量(类变量)和实例变量的定义、区别及联系

    一.静态变量和实例变量的区别 1.静态变量也叫做类变量,独立于方法之外的变量,有static修饰.实例变量同样也是独立于方法之外的变量,但没有static修饰. 实例变量属于某个对象的属性,必须创建了 ...

  8. python类变量与__init__声明变量的区别

    类变量:可在类的所有实例之间共享的变量 实例类对象:类的实例是调用类对象来创建的.如:par = Parent(),par就是类Parent的一个实例类对象. 实例变量(成员变量):同一个类对象可以创 ...

  9. android 属性动画实例,Android 属性动画Animator工具类代码案例

    代码分享-> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ packa ...

  10. android 属性动画实例,Android属性动画完全解析 中 ,ValueAnimator和ObjectAnimator的高级用法...

    大家好,在上一篇文章当中,我们学习了Android属性动画的基本用法,当然也是最常用的一些用法,这些用法足以覆盖我们平时大多情况下的动画需求了.但是,正如上篇文章当中所说到的,属性动画对补间动画进行了 ...

最新文章

  1. Python 爬虫进阶篇-利用beautifulsoup库爬取网页文章内容实战演示
  2. 天气小工具新增风格-默认无背景,感谢欧阳兄制作
  3. 用ASP.NET 重绘TabControl代码
  4. linuxliveu盘怎么用_U盘数据如何恢复?U盘打不开怎么办?
  5. 投影元素直接隔离_Angular ngcontent 内容投影
  6. How does gateway system determine whether cache is hit
  7. struct linger
  8. 输入三科成绩 C语言,c语言,编程,输入一名学生的语文、数学和英语三科成绩,计算并输出三门课程的总成绩...
  9. 图解TCP/IP读书笔记(三)
  10. bash error 环境变量错误
  11. SQLi LABS Less-3 联合注入+报错注入
  12. HDU1434 幸福列车【模拟+优先队列】
  13. ppap文件过程流程图制作_PPAP提交范本---过程流程图
  14. VC中CDockablePane使用心得
  15. 微信公众号(服务号)申请及微信认证详细流程图解
  16. python 开发框架 ant_Python ant
  17. 谷歌浏览器插件打包“文件清单缺失”与安装“文件损害”错误解决
  18. c语言大刀符号程序,特殊符号大刀图案 | 手游网游页游攻略大全
  19. 基于QPSK+LDPC的微波信道误码率matlab仿真
  20. 好好说话之Chunk Extend/Overlapping

热门文章

  1. jQuery 实现表格与 ckeckbox 的全选、单选功能
  2. 一次性获取多个oracle序列的值,实现关联表多数据的批量insert
  3. Servlet全面讲解
  4. 19_05_01校内训练[polygon]
  5. [cerc2012][Gym100624B]20181013
  6. ecshop 收货人信息电话必填改为手机必填
  7. [Go] Template 使用简介
  8. [BZOJ 1026] [SCOI 2009] Windy数 【数位DP】
  9. Socket、Http、TCP/IP、UDP的联系与区别
  10. JS module的导出和导入