先看图理解:

类属性就相当与全局变量,实例对象共有的属性,实例对象的属性为实例对象自己私有。

类属性就是类对象(Tool)所拥有的属性,它被所有类对象实例对象(实例方法)所共有,在内存中只存在一个副本,这个和C++中类的静态成员变量有点类似。对于公有的类属性,在类外可以通过类对象实例对象访问

类属性

  1. class People(object):
  2. name = 'Tom' #公有的类属性
  3. __age = 12 #私有的类属性
  4. p = People()
  5. print(p.name) #正确
  6. print(People.name) #正确
  7. print(p.__age) #错误,不能在类外通过实例对象访问私有的类属性
  8. print(People.__age) #错误,不能在类外通过类对象访问私有的类属性

实例属性(对象属性)

  1. class People(object):
  2. address = '山东' #类属性
  3. def __init__(self):
  4. self.name = 'xiaowang' #实例属性
  5. self.age = 20 #实例属性
  6. p = People()
  7. p.age =12 #实例属性
  8. print(p.address) #正确
  9. print(p.name) #正确
  10. print(p.age) #正确
  11. print(People.address) #正确
  12. print(People.name) #错误
  13. print(People.age) #错误

通过实例(对象)去修改类属性

  1. class People(object):
  2. country = 'china' #类属性
  3. print(People.country)
  4. p = People()
  5. print(p.country)
  6. p.country = 'japan'
  7. print(p.country) #实例属性会屏蔽掉同名的类属性
  8. print(People.country)
  9. del p.country #删除实例属性
  10. print(p.country)

总结

  • 如果需要在类外修改类属性,必须通过类对象去引用然后进行修改。如果通过实例对象去引用,会产生一个同名的实例属性,这种方式修改的是实例属性,不会影响到类属性,并且之后如果通过实例对象去引用该名称的属性,实例属性会强制屏蔽掉类属性,即引用的是实例属性,除非删除了该实例属性

类属性和实例属性的区别相关推荐

  1. Python 类—类属性(私有属性、公有属性、实例属性、局部变量)类方法(实例方法、静态方法)

    1. 创建类 类是对某个对象的定义,它包含有关对象动作方式的信息,包括它的名称.方法.属性和事件.类不存在于内存中,因此它本身并不是对象.当程序运行需要引用类的代码时,就会在内存中创建一个类的新实例, ...

  2. 一个类的实例是另一个类的属性python_Python中的类属性和实例属性引发的一个坑...

    问题 今天在项目中遇到了个奇怪的问题,实例的一个时间属性并没有根据时间变化而变化,分析之后恍然大悟,总结下分享给大家.大家先看一段代码: import datetime import time cla ...

  3. 关于Python类属性与实例属性的讨论

    标题名字有点长. 之所以想写这个文章是因为碰巧看到网上一篇关于Pyhon中类属性及实例属性区别的帖子.因为我之前也被这个问题困扰过,今天碰巧看到了这篇帖子,发现帖子的作者只是描述了现象,然后对原因的解 ...

  4. python实例属性与类属性_Python中的类属性和实例属性引发的一个坑-续

    上篇文章Python 中的类属性和实例属性,我们探讨了类属性和实例属性引发的一个小坑.总结了类属性和实例属性的区别如下:类属性可以被类和实例调用,实例属性只能被实例调用 类属性不会随着实例的调用而改变 ...

  5. python的实例属性和静态属性表_Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法...

    类属性可以直接在方法中赋值,但 一.调用该属性时,必须先调用该方法: 二.与 init 方法区别是,init方法只初始化一次,初始化完成后作为全局变量.在方法中赋值属性,每次调用该方法,该属性初始化一 ...

  6. 如何理解Java的类变量、成员变量、常量、类属性、实例属性、字段(field)、成员方法、类方法

    文章目录 变量相关概念 变量/常量 类变量/静态变量 成员变量/实例变量 类属性/实例属性/对象属性 什么是 field 成员变量和类变量的区别 两个变量的生命周期不同 访问方式不同 数据存储位置不同 ...

  7. Python之路-面向对象继承和多态类属性和实例属性类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强-& ...

  8. Python 类的属性与实例属性

    放假归来 ~~~ 一.概念 类对象:类名 实例对象:通过类创建的对象 类属性:类对象所拥有的属性.归类所有,被类对象和实例对象所共有. 类的公有属性可以在类外被访问. 实例属性:实例对象所特有的属性, ...

  9. Python类属性和实例属性分别是什么?

    实例属性即同一个类的不同实例,其值是互不关联的,也不会互相影响的,定义时使用"self.属性名",调用时也使用"self.属性名". 类属性则是同一个类的所有实 ...

最新文章

  1. 如何创建自己的ESLint配置包
  2. 理性解读中国科技实力:不震惊式吹捧,也不全盘抹杀
  3. MyEclipse结合Git
  4. linux 查看nexus状态,在linux上搭建nexus私服(CentOS7)
  5. jquery ajax 找到数据怎样放到下拉框里_闲话Excel之简易数据动态图表的制作
  6. MySQL中索引的分类和基本操作
  7. [gkk传智]static与多态及向下向上转型,及多态调用总结
  8. 自动根据键盘位置调整UITextView的高度
  9. 【Kafka】报错:Error while fetching metadata with correlation id 1 : {topic_lcc=LEADER_NOT_AVAILABLE}
  10. 北方方言的拼音及解释
  11. pandas.Series.values
  12. 视频教程-三课时精通matlab拉普拉斯变换和逆变换-Matlab
  13. mysql 唯一性榆树_榆树有多少种
  14. phpmyadmin突破secure_file_priv写shell 的渗透
  15. 计算机网络——网络层:控制层面
  16. 磁盘空间清理·微信文件夹
  17. iOS 调整图片尺寸和大小的两个方法
  18. Hbase——练习4
  19. 华为电脑怎么不上鸿蒙,我找不到不喜欢华为鸿蒙操作系统的理由
  20. 最早的计算机网络游戏,手机网络游戏早期发展史——图文游戏

热门文章

  1. E+新零售核心三大亮点,六大功能模式
  2. HTML中的基础标签
  3. ubuntu lightdm登陆器不能用
  4. 游戏场景构成研究:图形构成
  5. 长城坦克SUV携Hi4-T越野超级混动架构亮相2023上海车展
  6. oracle minus用法(求并集和交集)
  7. 机器人控制系统(二)——整体设计
  8. OpenCV浅记,色彩空间与提取图像色彩
  9. R语言:随机森林的实现——randomForest
  10. 污染源在线监控数采仪