作者:帅的人都关注了
Github:Github
爱好:Americano More Ice !
QQ学习交流群(new): 811792998
- 片段1
1.返回一个名称为name的新type,这个type没有任何东西 2.执行MetaA和MetaA.init__不会有任何效果,不会触发__init
>>> class MetaA(type):
... def __new__(cls, name, bases, dct):
... print 'MetaA.__new__'
... return type(name, bases, dct)
... def __init__(cls, name, bases, dct):
... print 'MetaA.__init__'
...
>>> class A(object):
... __metaclass__ = MetaA
...
MetaA.__new__
>>>
- 片段2
1.返回一个名称为name的新type,return结果为type,是cls一个实例,实例就是MetaA 2.执行完__new__可以触发__init__
>>> class MetaA(type):
... def __new__(cls, name, bases, dct):
... print 'MetaA.__new__'
... return type.__new__(cls, name, bases, dct)
... def __init__(cls, name, bases, dct):
... print 'MetaA.__init__'
...
>>> class A(object):
... __metaclass__ = MetaA
...
MetaA.__new__
MetaA.__init__
>>>