python深入之类的补充(1)

关于类的存储模型图

(1)在内存中,类的存储模型如下:

(2)类的名称变量可以随便取,但其指向的类是Person类,类的__dict__方法指向了一块存储类属性和方法的内存,类铜鼓实例化产生实例,而实例通过__class__方法与对应类联系。类和实例本质都是对象。

关于元类定义及结构图

(1)元类的定义:由于类也是对象,而对象是由类实例化出来的,所以,类也是由某个其他的类创建出来,产生类的类就是元类

(2)元类结构图如下:

其中Type类就是元类,分别产生三个类对象,而在Type上面则没有元类

关于类的创建方式

(1)自动创建:

class Person:
    pass

解释器会自动根据上述语句创建一个类

(2)手动创建

dog = type("dog", (), {"num": 8, "run": run})

通过上述语句,由type元类生成一个dog类,名称变量是dog

关于类的创建流程

(1)创建类时,通过检测__metaclass__属性,来确定使用哪个元类来创建类,如__metaclass__=type,即使用type元类创建类

(2)元类查询机制(重点):首先在类对象中检查有无明确的__metaclass__属性,没有则在类对象的父类中检查有无明确的__metaclass__属性,还没有则在模块中检查有无明确的__metaclass__属性,若还是没有的话,就使用type元类来创建该类对象

关于类的描述

(1)目的:1.方便日后自己来看;2.节省与别人的沟通成本;3.方便生成项目文档

(2)方式:在类和方法的第一行使用三对双引号,写入内容即可

(3)具体代码如下

class Person:
    """
    类的作用:计算时间
    Attribute:
        count:人数,int
    """
    conut = 8
    def run(self, d, s):
        """
        函数作用:跑步
        函数参数:
            d:距离,int,不可选
            s:步长,int,不可选
        函数返回值:时间,int,d/s
        """
        print("时间")
        return d / s
def xxx():
    """
    函数的作用是xxx
    :return: xxx
    """
    print("xxx")

使用help()函数可以查看相关描述的显示内容

关于项目文档

(1)生成项目文档使用的内建模块是pydoc

(2)使用方法:在终端中对应文件目录下,使用python -m pydoc -h可以获取该模块的帮助文档

猜你喜欢

转载自blog.csdn.net/zx870121209/article/details/81317505