python面向对象-学习笔记(四、类相关的补充)

发布时间 2023-10-29 15:38:53作者: 阿慢2010

元类

  • 创建类对象的类
  • 对象怎么产生的?由类创建出来的。
  • 类是不是对象?是
  • 所以类对象是不是由另外一个类创建出来的?是,元类
创建类对象的另外一种方式
# 创建类对象的另外一种方式
def run(self):
    print("run ", self)


dog = type("Dog", (), {"count": 1, "run": run})
print(dog)

# 类实例化
d = dog()
print(d.count)
print(d.run())

image

元类的检索机制
# 往上找(元类检索机制)
# 1.检测类中是否有明确的__metaclass__属性
# 2.检测父类中是否有明确的__metaclass__属性
# 3.检测模块中是否有明确的__metaclass__属性
# 4.通过内置的type这个元类来创建类对象

__metaclass__ = xxx


class Person(metaclass=xxx):
    __metaclass__ = xxx
    pass

类的描述

类的描述
class Person:
    """
    关于这个类的描述,类的作用,类的构造函数等等;类属性的描述
    Attributes:
        count: int 代表是人的个数
    """
    # 这个表示,是人的个数
    count = 1

    def run(self, distance, step):
        """
        这个方法的作用效果
        :param distance: 参数的含义 ,参数的类型,是否有默认值
        :param step:
        :return: 返回的结果的含义(时间),返回数据的类型
        """
        print("人在跑")


help(Person)

image

pydoc的使用

  • python -m pydoc 类的描述(模块名)
    image

  • python -m pydoc -p 1234
    image
    image
    image

  • python -m pydoc -b
    跟上面命令的作用一致,端口不需要指定,自动查找可用的端口

  • python -m pydoc -w classDesc(模块名)
    将模块的描述写入到html中

当然我们也可以使用第三方模块Sphinx、epydoc、doxygen


学习链接: 【Python】零基础入门 面向对象编程(强烈推荐)