1. 作用
暂时不深究
2. 操作
# 元类
# 道生一,一生二, 二生三, 三生万物
# type > metaclass > class > instance
def fn(self, name='World'):
print('love_me_as_i_go')
# 利用type(类名, 继承类, 函数)生产类
Hello = type('Hello', (object,), dict(hello=fn,))
h = Hello()
h.hello()
# 上述例子没有出现metaclass
# metaclass 继承 type
# 添加__new__方法
# cls 类对象
# name 类名
# bases 父类
# attrs 属性
class ListMetaclass(type):
def __new__(cls, name, bases, attrs):
attrs['add'] = lambda self, value: self.append(value)
return type.__new__(cls, name, bases, attrs)
class MyList(list, metaclass=ListMetaclass):
pass
l = MyList()
l.add(11)
l.add(23)
print(l)