0. 元类
- 概念:用来
创建
类对象
的类
num = 10 print(num.__class__) print(num.__class__.__class__) s = "abc" print(s.__class__) print(s.__class__.__class__) class Person: pass p = Person() print(p.__class__) print(p.__class__.__class__)
- 创建类对象
结构图.pngdef play(self, ball): print("在打球", self, ball) Person = type("Person", (), {"count": 100, "play": play}) print(Person) print(Person.__dict__) p = Person() print(p) p.play("篮球")
- 类对象创建流程
查找机制.png1. 检测类中是否有明确 __metaclass__ 属性; 如果有, 则通过指定元类来创建这个类对象 2. 检测父类中是否存在 __metaclass__ 属性; 如果有, 则通过指定元类来创建这个类对象 3. 检测模块中是否存在 __metaclass__ 属性; 如果有, 则通过指定元类来创建这个类对象 4. 通过内置的 type 这个元类, 来创建这个类对象
- 应用场景
1. 拦截类的创建 2. 修改类 3. 返回修改之后的类
1. 类描述
- 描述方式
1. 形式 (1)直接在类的下方, 使用三个双引号对描述 (2)需要注明类的作用, 以及类属性描述 (3)方法描述和函数描述一样 2. 示例 class Person: """ 关于这个类的描述, 类的作用, 类构造函数, 类属性等等 Attributes: count: int 代表人的个数 """ count = 100 def play(self, ball): """ 这个方法的作用效果 :param ball: 参数含义, 参数类型, 是否可选, 是否有默认值 :return: 返回结果含义, 返回结果数据类型 """
- 生成项目文档
1. 使用内置模块 pydoc (1) 查看文档描述:python3 -m pydoc 模块名称 (2) 启动本地服务, 浏览文档: python3 -m pydoc -b (3) 生成指定模块 html 文档: python3 -m pydoc -w 模块名称
2. 使用第三方模块 (1) Sphinx (2) epydoc (3) doxygen
网友评论