__new__()方法的使用和实例化
Python中__new__()方法的使用和实例化 1 2 new ()是在新式类中新出现的方法,它作用在构造方法 init ()建造实例之前,可以这么理解,在Python 中存在于类里面的构造方法 init ()负责将类的实例化,而在 init ()调用之前, new ()决定是否要使用该 init ()方法,因为 new ()可以调用其他类的构造方法或者直接返回别的对象来作为本类 的实例。 如果将类比喻为工厂,那么 init ()方法则是该工厂的生产工人, init ()方法接受的初始化参 数则是生产所需原料, init ()方法会按照方法中的语句负责将原料加工成实例以供工厂出货。而 new ()则是生产部经理, new ()方法可以决定是否将原料提供给该生产部工人,同时它还决定着出 货产品是否为该生产部的产品,因为这名经理可以借该工厂的名义向客户出售完全不是该工厂的产品。 new ()方法的特性: new ()方法是在类准备将自身实例化时调用。 new ()方法始终都是类的静态方法,即使没有被加上静态方法装饰器。 类的实例化和它的构造方法通常都是这个样子: class MyClass(object): def __init__(self, *args, **kwargs): ... # 实例化 myclass = MyClass(*args, **kwargs) 1 2 3