* 类型 和类
在Python中,一切都是对象。类也是对象。所以一个类必须有一个类型
注意:
1.type Python3中所有的类都是通过type来创建出来的
2.object:Python3中所有类的顶级父类都是object
# 使用type创建类
"""
1.第一个参数是类的名字 str 类型
2.第二个参数是继承的父类 tuple 类型
3.第三个参数类定义的属性,跟方法名 dict 类型
"""
# 创建方法,放到第三个参数里面就可以,调用
def func(self):
print("你好")
Test = type("Test", (object,), {"name": "张三","func":func})
自定义元类
1.自定义元类必须继承于type
2.type创建类:三个参数
"""
1.第一个参数是类的名字 str 类型
2.第二个参数是继承的父类 tuple 类型
3.第三个参数类定义的属性,跟方法名 dict 类型
"""
例子:
# 自定义元类
class MyMetaClass(type):
def __new__(cls, name, bases, namespace, *args, **kwargs):
return super().__new__(cls, name, bases, namespace)
# 通过自定义元类来创建类
class Test(metaclass=MyMetaClass):
name = "张三"
# 父类指定元类,子类可以继承父类所指定的元类
class MyClass(Test):
pass
t = Test()
print(type(Test))
结果:<class '__main__.MyMetaClass'>
print(Test.__dict__)