接上一篇 [Python3] 022 面向对象 第二弹

7. 类相关函数

函数 释义
issubclass 检测一个类是否为另一个类的子类
isinstance 检测一个对象是否为一个类的实例
hasattr 检测一个对象是否有成员 xxx
getattr get attribute
setattr set attribute
delattr delete attribute
  • 挖坑

    • 对以上几个函数举例
    • 坑号编码:Py023-1

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. 类相关函数
  • 挖坑
    • 给上方两个魔术方法举例
    • 坑号编码:Py023-4

10.4 运算分类相关魔术方法

  • __gt__: 进行大于判断的时候触发的函数

    • 2 个参数:

      • self: 用来获取当前对象
      • 第 2 个:第二个对象
    • 返回值可以是任意值,推荐返回布尔值

此为听 北京图灵学院的 Python3 公开课 所记笔记

最新文章

  1. MVC CodeFirst简单的创建数据库(非常详细的步骤)
  2. javascript之AJAX学习
  3. Swift语法简介(一)
  4. PAT A 1013. Battle Over Cities (25)【并查集】
  5. 使用 7za.exe 打包文件
  6. poj 2373 单调队列优化背包
  7. DHTMLX 前端框架 建立你的一个应用程序 教程(十)--保存表单中的数据
  8. Kafka系列(一)安装和配置说明
  9. Protel99se教程五:protel99se的自动布线
  10. 一天一个类,一点也不累之TreeSet
  11. asp.net web api帮助文档的说明
  12. jQuery写选项卡
  13. 第三周学习java第四章学习总结及体会!
  14. 微信小程序上传文件遇到的坑
  15. python之读写文件
  16. 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录
  17. 框架tensorflow1
  18. Java中ArrayList实现原理
  19. Qt creator 编译错误:无法解析的外部符号(命令)
  20. Navicat连接Docker中的mysql报错:client does not support authentication

热门文章

  1. Log4Net 之将日志记录到数据库的配置 (一)
  2. JVM(19)之 Class文件常量池
  3. python基础--2 字符串
  4. alert(1) to win 2
  5. 前端经典布局:Sticky footer 布局
  6. Ubuntu下批量使用Tecplot的preplot命令对数据进行处理
  7. 状压DP常用操作
  8. win7每天出现taskeng.exe进程的解决方案
  9. 20180705-Java基础语法
  10. jsplumb+dragable+vue(一)