python中_new_和_init_的区别_Python 中__new__()和__init__()的区别

__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__方法执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值