__new__方法:类级方法特点:1。叫做类可以实例化时,cls和至少一个参数需要通过,由python解释器自动提供当实例化;2. 它总是类静态方法,即使没有添加静态方法装饰;3.它必须有一个返回值返回实例化实例;当实现__new__(),你需要注意:你可以返回父类(超级(当前类名),Cls))。__new__,或者直接从__new__对象类(对象):passa =() #在默认情况下,这个__new__()方法的调用父类对象来构造类实例的类(对象):def __new__ (cls):\u201C重写__new__法\u201D返回\u201Cabc\u201D=()打印(A) #\u201Cabc\u201D,实例化的对象取决于__new__方法,__new_ _What返回单例(对象):def __new__ (cls * args, * * kwargs):如果不是hasattr (cls,\u201C_instance\u201D): cls。
__new__ (cls)返回cls._instancea =单例()b = c单例()=单例()打印(a) (b)打印打印(c)输出结果:__init__方法:实例级方法特点:1。自我有一个参数,返回的实例__new__ ();2. __init__()完成初始化操作的基础上__new()和不需要返回值;3.如果__new__()如果当前类的实例cls不正确返回,然后__init__()将不会被调用。4. 创建的每个实例都有自己的属性,方便调用实例方法在类;它将更清晰的理解通过比较以下代码:B类():def __new__ (cls):打印(\u201C执行__new__方法\u201D)def __init__(自我):打印(__init__方法执行)B = B()结果:__new__方法执行类B (): def __new__ (cls):打印(\def __init__(自我):打印(__init__方法执行)b = b()结果:__new__方法执行__init__方法执行