__new__方法、__init__方法

#__new__方法可以自定义类的生成过程,cls传递进来的是类User
#__init__方法是对对象进行处理,self传递进来的是对象
class User():
    def __new__(cls,*args,**kwargs):
        print("in new")
        return super().__new__(cls)
    def __init__(self,name):
        print("in init")
        pass

#new用来控制对象的生成过程,在对象生成之前,也即在__init__之前
#init是用来完善对象的
#如果new方法不返回对象,则不会调用init方法
if __name__=="__main__":
    user=User(name='bobby')
    #user = User('bobby')

猜你喜欢

转载自blog.csdn.net/jiangsujiangjiang/article/details/85228647