python学习高级篇(part1)--类属性
学习笔记,仅供参考,有错必纠
学习资源:图解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)--类属性相关推荐
- python学习高级篇(part10)--类对象的特殊方法和特殊属性
学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__del__()` 类对象的特殊方法之`__getattr__()` 类对象的特殊方法之`__getitem__ ...
- python学习高级篇(part7)--特殊属性和特殊方法
学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 特殊属性和特殊方法 获取对象的信息之特殊属性`__dict__` 获取对象的信息之反射 类对象的特殊方法`__len__()` pyt ...
- python学习高级篇(part8)--类对象的特殊方法
学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__iter__()`和`__next__()` 类对象的特殊方法之`__add__()`和`__radd__() ...
- python学习高级篇(part9)--对象的引用计数
学习笔记,仅供参考,有错必纠 文章目录 python 学习高级篇 类对象的特殊方法之`__str__()` 类对象的特殊方法之`__new__()` 对象的引用计数 什么是引用计数 对象的引用计数加1 ...
- python学习高级篇(part3)--MRO
学习笔记,仅供参考,有错必究 MRO MRO的全称是Method Resolution Order(方法解析顺序),它指的是对于一颗类继承树,当调用最底层类对象所对应实例对象的方法时,Python解释 ...
- python学习高级篇(part2)--类方法,静态方法,访问控制
学习笔记,仅供参考,有错必纠 学习资源:图解python 文章目录 类方法 举个例子 静态方法 举个例子 访问控制 举个例子 举个例子 举个例子 类方法 类方法指的是类对象中使用装饰器@classme ...
- python学习高级篇(part6)--内置函数dir
学习笔记,仅供参考,有错必纠 内置函数dir 对于类对象或实例对象,可以调用内置函数dir()获得其所有可以访问的属性和方法(包括从父类中继承的属性和方法)的列表. 类对象与实例对象的结果是有区别的, ...
- python学习高级篇(part5)--内置函数type
学习笔记,仅供参考,有错必纠 内置函数type 内置函数type()用于获得指定对象的类型,比如:实例对象的类型是其对应的类对象. 举个例子 代码: class MyClass(object):pas ...
- python学习高级篇(part4)--内置函数issubclass和isinstance
学习笔记,仅供参考,有错必纠 文章目录 issubclass()函数 举个例子 isinstance()函数 举个例子 issubclass()函数 内置函数issubclass()用于判断类对象与类 ...
最新文章
- 产生0到1之间均匀分布的一个随机数原理与实现
- 【MySQL】Got fatal error 1236原因和解决方法
- 免费素材下载:Box Of Bundles Number 2
- 程序员计算手机分辨率比例
- Apache用户身份验证
- L1-018 大笨钟 (10 分)
- Linux下OneinStack一键安装JAVA+PHP+Tomcat+Nginx+MySQL网站环
- node js并发加载页面缓慢_详解如何利用前端Node模块zlib开启gzip压缩使页面加载速度更快...
- java 静态 编译_Java中的动态和静态编译
- java this()函数_Java经典面试题之(如何正确的使用this?)
- Redis常用命令总结,为什么阿里的程序员成长如此之快
- 基于深度学习的视频质量分析 深度学习视频质量诊断 图像质量诊断
- vue组件eleme 时间选择器问题
- 离线地图开发 支持 局域网内二次开
- Service Worker概念和应用介绍
- Ubuntu 台式机 usb WiFi 接收器设置方法
- jQuery背景墙聚光灯效果
- react RangePicker 日期选择器,可选择的日期范围是选中日期的前后三个月
- rxtx java 错误
- 我的CSDN现在没有C币,没办法下载