1 #!/user/bin/env python 2 # -*- coding:utf-8 -*- 3 # __new__ 在 __init__ 之前执行 4 # __new__ 是用来控制对象的生成过程, 在对象生成之前 5 # __init__ 是用来完善对象的 6 # 如果__new__方法不返回对象, 则不会调用__init__方法 7 8 9 class User: 10 def __new__(cls, *args, **kwargs): 11 print('in new') 12 return super().__new__(cls) 13 14 def __init__(self, name): 15 print('in init') 16 self.name = name 17 18 19 if __name__ == '__main__': 20 user = User('zy') 21 print(user.name)
in new in init zy