注意: __new__在新式类中会有。
class User:
def __new__(cls, *args, **kwargs):
print("in new ")
def __init__(self, name):
print("in init")
self.name = name
if __name__ == "__main__":
user = User(name="summer")
1、很明显的区别new中传递的cls,也就是类,而init中传递的是对象self。
2、new中可以自定义生成类的过程,控制对象的生成过程,init是完善对象的。
3、如果new方法不返回对象,则不会调用init函数。