学习笔记,仅供参考,有错必纠

学习资源:图解python


文章目录

  • 类属性
    • 举个例子
    • 举个例子

类属性

类属性指的是类对象所绑定的属性。

绑定类属性(给类对象绑定属性)的方式有两种:

  • 在类对象的内部(方法外)

    • 语法格式:属性名 = 属性值
  • 在类对象的外部
    • Python是动态语言,所以,在类对象创建之后,可以对其动态地绑定属性
    • 语法格式:类对象.属性名 = 属性值
    • 如果指定名称的类属性已经存在,则是对类属性进行修改。

访问类属性的方式有两种:

  • 在类对象的内部(方法中)

    • 语法格式:类对象.属性名
  • 在类对象的外部
    • 语法格式:类对象.属性名实例对象.属性名
    • 类对象的所有实例对象都有一个指向类对象的指针,所以,类对象的所有实例对象都可以访问类属性。

举个例子

代码:

class MyClass(object):ca1 = 18def do_sth(self):print(MyClass.ca1)def do_another(self):print(MyClass.ca2)mc = MyClass()mc.do_sth()print(MyClass.ca1)
print(mc.ca1) MyClass.ca2 = 56
print(MyClass.ca2)
print(mc.ca2)
MyClass.ca2 = 73
print(MyClass.ca2)
print(mc.ca2)  mc.do_another()

输出:

18
18
18
56
56
73
73
73

访问实例属性类属性都可以通过实例对象.属性名的方式。

当通过实例对象.属性名的方式访问属性时,会先查找指定的实例对象中有没有指定名称的实例属性,如果没有,再查找对应的类对象中有没有指定名称的类属性。

所以,当通过实例对象.属性名的方式访问属性时,如果实例属性和类属性同名,实例属性会屏蔽掉类属性。

当通过实例对象.属性名 = 属性值的方式绑定属性时,这里的属性只表示实例属性(因为类属性没有这样的绑定方式),所以,只会查找指定的实例对象有没有绑定指定名称的实例属性,如果没有则进行绑定,如果已经绑定了,则对属性值进行修改。

举个例子

代码:

class Person(object):age = 18p = Person()print(p.age)
print(Person.age)p.age = 19
print(p.age)
print(Person.age)del p.age
print(p.age)p1 = Person()
p2 = Person()p1.age += 2
print(Person.age)
print(p1.age)
print(p2.age)Person.age += 3
print(Person.age)
print(p1.age)
print(p2.age)

结果:

18
18
19
18
18
18
20
18
21
20
21

python学习高级篇(part1)--类属性相关推荐

  1. python学习高级篇(part10)--类对象的特殊方法和特殊属性

    学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__del__()` 类对象的特殊方法之`__getattr__()` 类对象的特殊方法之`__getitem__ ...

  2. python学习高级篇(part7)--特殊属性和特殊方法

    学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 特殊属性和特殊方法 获取对象的信息之特殊属性`__dict__` 获取对象的信息之反射 类对象的特殊方法`__len__()` pyt ...

  3. python学习高级篇(part8)--类对象的特殊方法

    学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__iter__()`和`__next__()` 类对象的特殊方法之`__add__()`和`__radd__() ...

  4. python学习高级篇(part9)--对象的引用计数

    学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__str__()` 类对象的特殊方法之`__new__()` 对象的引用计数 什么是引用计数 对象的引用计数加1 ...

  5. python学习高级篇(part3)--MRO

    学习笔记,仅供参考,有错必究 MRO MRO的全称是Method Resolution Order(方法解析顺序),它指的是对于一颗类继承树,当调用最底层类对象所对应实例对象的方法时,Python解释 ...

  6. python学习高级篇(part2)--类方法,静态方法,访问控制

    学习笔记,仅供参考,有错必纠 学习资源:图解python 文章目录 类方法 举个例子 静态方法 举个例子 访问控制 举个例子 举个例子 举个例子 类方法 类方法指的是类对象中使用装饰器@classme ...

  7. python学习高级篇(part6)--内置函数dir

    学习笔记,仅供参考,有错必纠 内置函数dir 对于类对象或实例对象,可以调用内置函数dir()获得其所有可以访问的属性和方法(包括从父类中继承的属性和方法)的列表. 类对象与实例对象的结果是有区别的, ...

  8. python学习高级篇(part5)--内置函数type

    学习笔记,仅供参考,有错必纠 内置函数type 内置函数type()用于获得指定对象的类型,比如:实例对象的类型是其对应的类对象. 举个例子 代码: class MyClass(object):pas ...

  9. python学习高级篇(part4)--内置函数issubclass和isinstance

    学习笔记,仅供参考,有错必纠 文章目录 issubclass()函数 举个例子 isinstance()函数 举个例子 issubclass()函数 内置函数issubclass()用于判断类对象与类 ...

最新文章

  1. 产生0到1之间均匀分布的一个随机数原理与实现
  2. 【MySQL】Got fatal error 1236原因和解决方法
  3. 免费素材下载:Box Of Bundles Number 2
  4. 程序员计算手机分辨率比例
  5. Apache用户身份验证
  6. L1-018 大笨钟 (10 分)
  7. Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环
  8. node js并发加载页面缓慢_详解如何利用前端Node模块zlib开启gzip压缩使页面加载速度更快...
  9. java 静态 编译_Java中的动态和静态编译
  10. java this()函数_Java经典面试题之(如何正确的使用this?)
  11. Redis常用命令总结,为什么阿里的程序员成长如此之快
  12. 基于深度学习的视频质量分析 深度学习视频质量诊断 图像质量诊断
  13. vue组件eleme 时间选择器问题
  14. 离线地图开发 支持 局域网内二次开
  15. Service Worker概念和应用介绍
  16. Ubuntu 台式机 usb WiFi 接收器设置方法
  17. jQuery背景墙聚光灯效果
  18. react RangePicker 日期选择器,可选择的日期范围是选中日期的前后三个月
  19. rxtx java 错误
  20. 我的CSDN现在没有C币,没办法下载

热门文章

  1. 5-2 决策树算法预测销量高低代码
  2. python生成器generator:深度学习读取batch图片
  3. 【机器学习】集成学习之梯度提升树GBDT
  4. 微型计算机接口技术常见问题,《微型计算机接口技术及应用》期末考试试卷及问题详解(64页)-原创力文档...
  5. 让字跑起来的HTML5标签,HTML5:标记文字
  6. linux服务器登录时慢出现卡顿
  7. 基于bboss开发平台eclipse开发工程生成工具介绍
  8. Oracle FGA审计记录的清理步骤
  9. Contracts for Java
  10. Web三个域对象的区别