目录
接上一篇 [Python3] 022 面向对象 第二弹
7. 类相关函数
issubclass |
检测一个类是否为另一个类的子类 |
isinstance |
检测一个对象是否为一个类的实例 |
hasattr |
检测一个对象是否有成员 xxx |
getattr |
get attribute |
setattr |
set attribute |
delattr |
delete attribute |
8. 类的成员描述符(属性)
- 类的成员描述符是为了在类中对类的成员属性进行相关操作而创建的一种方式
get |
获取属性的操作 |
set |
修改或者添加属性操作 |
delete |
删除属性的操作 |
- 如果想使用类的成员描述符,大概有三种方法
- 使用类实现描述器
- 使用属性修饰符
- 使用 property 函数
- property 函数很简单
- property(fget, fset, fdel, doc)
- 无论哪种修饰符都是为了对成员属性进行相应的控制
- 类的方式:适合多个类中的多个属性共用一个描述符
- property:使用于当前类中,可以控制一个类中多个属性
- 属性修饰符: 使用于当前类中,控制一个类中的一个属性
9. 类的内置属性
__dict__ |
以字典的方式显示类的成员组成 |
__doc__ |
获取类的文档信息 |
__name__ |
获取类的名称;如果在模块中使用,获取模块的名称 |
__bases__ |
获取某个类的所有父类,以元组的方式显示 |
10. 类的常用魔术方法
- 魔术方法(魔法方法)就是不需要人为调用的方法,基本是在特定的时刻自动触发
- 魔术方法的统一的特征,方法名被前后各两个下划线包裹
10.1 操作类
__init__ |
构造函数 |
__new__ |
对象实例化方法;此函数较特殊,一般不需要使用 |
__call__ |
对象当函数使用的时候触发 |
__str__ |
当对象被当做字符串使用的时候调用 |
__repr__ |
返回字符串 |
Py023-2 |
对以上魔术方法举几个简单的例子 |
Py023-3 |
__str__ 跟 __str__ 具体区别 |
10.2 描述符
__set__
__get__
__delete__
10.3 属性操作
-
__getattr__
: 访问一个不存在的属性时触发
-
__setattr__
: 对成员属性进行设置的时候触发
- 3 个参数:
- self: 用来获取当前对象
- 第 2 个:被设置的属性名称,以字符串形式出现
- 第 3 个:需要对属性名称设置的值
- 作用:进行属性设置的时候进行验证或者修改
- 注意:在该方法中不能对属性直接进行赋值操作,否则会陷入死循环
- 可对比
7. 类相关函数
- 挖坑
10.4 运算分类相关魔术方法
-
__gt__
: 进行大于判断的时候触发的函数
- 2 个参数:
- self: 用来获取当前对象
- 第 2 个:第二个对象
- 返回值可以是任意值,推荐返回布尔值
此为听 北京图灵学院的 Python3 公开课 所记笔记