python metaclass 和 __new__方法

来源:互联网 发布:a星寻路算法教程 编辑:程序博客网 时间:2024/06/06 01:50
# Author : hacker Huclass MyType(type):    def __init__(self, name, bases=None, dict=None):        print('MyType init')        super(MyType, self).__init__(name, bases, dict)    def __call__(self, *args, **kwargs):        print('MyType call')        obj =  self.__new__(self, *args, **kwargs)        self.__init__(obj, *args, **kwargs)class A(object, metaclass=MyType):    def __new__(cls, *args, **kwargs):        print('A new')        return super(A, cls).__new__(cls)    def __init__(self, *args, **kwargs):        print(' A init')a = A()