元类

作者: 测试探索 | 来源:发表于2022-11-30 17:36 被阅读0次

一:元类定义

创建类的类叫做元类。类是元类创建出来的对象

class Demo(object):

    def __call__(self, *args, **kwargs):
        print("---call---执行了")

d = Demo()
d()

# 输出结果type,代表元类
print("创建d的类为:",d.__class__)
print("创建Demo的类为:",Demo.__class__)
print(str.__class__)
image.png

二、type的两种使用

1、获取数据的类型:type(object) -> the object's type
2、创建类:type(name, bases, dict) -> a new type
参数:
name:类名(只能是str类型)
bases:继承的父类(只能是元祖类型)
dict:属性和方法组成的字典(只能是字典类型)
返回值:创建出来的类

2-1:给类添加属性

# 通过class定义类
class MyClass1():
    a = 100
    b = 200


# 通过元类定义类(动态创建类)
MyClass2 = type("MyClass2",(object,),{"name":100,"age":200})
print(MyClass1)
print(MyClass2)
image.png

2-2:给类添加方法

def work(self):
    print("---work---方法")

MyClass3 = type("MyClass2",(object,),{"name":100,"age":200,"work":work})
print(MyClass3.__dict__)

m = MyClass3()
m.work()
image.png

相关文章

  • 3.isa

    isa指向 ->实例isa -> 类|类isa -> 元类 | 元类isa -> 根元类|根元类isa -> 根元...

  • Python元类

    元类 元类就是用来创建类的,元类就是类的类。 实例 关于type()函数的使用戳这里 元类为一个函数 元类为一个类

  • isa 和 superclass

    实例对象的 isa 指向类对象,类对象的 isa 指向元类对象,元类的isa 指向基类的元类对象,基类的元类对象的...

  • 友元类和嵌套类

    友元类 友元函数用于类的扩展接口中,类并非只能拥有友元函数,也可以将类作为友元,该类称为友元类。 友元类的所有方法...

  • 29.Python之面向对象的元类

    Python之面向对象的元类 什么是元类?类的类就是元类,元类创建对象。使用class定义的类,用来产生程序员自己...

  • 面向对象 六

    目录 1.元类 1.1 类创建过程 1.2 元类控制类的创建 1.3 元类控制类的创建过程案例 1.4 自定义元...

  • Python 元类

    什么是元类?元类就是创建类的类,type是最原始的一个元类。(实例是实例化的类,而类是元类的实例)python中一...

  • isa

    NSObject的父类为nil NSObject的isa为根元类 元类的isa都为根元类 根元类的isa为本身 根...

  • iOS开发中方法查找流程图

    实例对象的isa指针指向类对象,类对象的isa指针指向元类,元类的isa指针指向根元类,根元类的isa指针指向自己...

  • 类对象、元类

    任何实例的isa指针指向其类对象,类对象的isa指针指向其元类对象,元类对象的isa指针指向根元类对象,根元类对象...

网友评论

      本文标题:元类

      本文链接:https://www.haomeiwen.com/subject/wmsrfdtx.html