37,743
社区成员




class B(object):
def __new__(cls, *args, **kwds):
print "three"
print cls
print B
print "B.__new__", args, kwds
return object.__new__(cls, *args, **kwds)
def __init__(cls, *args, **kwds):
print "four"
print "B.__init__", args, kwds
class A(object):
def __new__(cls, *args, **kwds):
print "one"
print "A.__new__", args, kwds
return object.__new__(B, *args, **kwds)
def __init__(cls, *args, **kwds):
print "two"
print "A.__init__", args, kwds
print A()
print "====================="
print B()
def __init__(cls, *args, **kwds):
print "two"
print "A.__init__", args, kwds
最后,虽然cls,self的名字都是约定俗成,而不是法律要求,你用其它名字也可以。但一般__init__的第一个参数叫self,尤其不该叫cls。