Python __call__

来源:互联网 发布:一维数组排序算法 php 编辑:程序博客网 时间:2024/05/15 02:19

__new__ 用于生成类本身

__call__用于生成类的实例

class Meta(type):    def __new__(cls, name, bases, newattrs):        print "new: %r %r %r %r" % (cls, name, bases, newattrs,)        return super(Meta, cls).__new__(cls, name, bases, newattrs)    def __call__(self, *args, **kw):        print "call: %r %r %r" % (self, args, kw)        #return None        return super(Meta, self).__call__(*args, **kw)            def __init__(cls, name, bases, dict):          super(Meta, cls).__init__(name, bases, dict)          cls._instance = None        print 'TTTTTTTTTTTTTTTTTTT'class Foo:    __metaclass__ = Meta    def __init__(self, *args, **kw):        print "init: %r %r %r" % (self, args, kw)f = Foo('bar')print "main: %r" % f

0 0
原创粉丝点击