元类
(1)使用type直接创建类
Test = type('Test01', (object,), {'name': 'haha', 'age': 18})
t1 = Test()
print(type(t1))
print(Test.__dict__)
(2)继承type,用继承类创建类
class MyTypeClass(type):
def __new__(cls, name, base, attr: dict, *args, **kwargs):
print('---------修改元类-------')
attr_dict = {}
for k, v in attr.items():
attr_dict[k.upper()] = v
__slots__ = ['name','age']
return type.__new__(cls, name, base, attr_dict)
class MyClass(metaclass=MyTypeClass):
name='hahaha'
age='19'
name1 = 'hhh'
t2 = MyClass()
print(type(t2))
print(MyClass.__dict__)