MetaClass
class ListMetaclass(type):
"""
元类,MetaClass
用于创建类的类,是除了type外的第二种创建类的方式
"""
def __new__(mcs, name, base, attrs):
attrs["test"] = lambda self, value: self.append(value)
# print 1
return type.__new__(mcs, name, base, attrs)
class MyList(list):
"""
普通类
在类创建的时候,会寻找元类。先在类的空间内,依次往上。由于创建出当前类
由于此类继承了list, 所以类也继承了list 的append方法,在调用时,对象
会将自身传递给方法,
因此,‘attrs["test"] = lambda self, value: self.append(value)’
也就了然了
"""
__metaclass__ = ListMetaclass
if __name__ == "__main__":
l = MyList()
dir(l)
l.test(123)
print l
运行结果
[123]