python __new__和 __init__

__new__和__init__是Python中用于对象初始化的两个特殊方法。__new__在实例对象创建时执行,负责控制新实例的创建过程,而__init__则在实例创建后执行,用于初始化已创建的实例。__new__是类级别的静态方法,由Python自动调用,若未重写则默认调用object基类的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

区别

1. __new__方法是在实例对象创建时执行的,而构造方法__init__是实例创建后执行的。

2.  解析:

(1)__new__方法

  • __new__方法是Python新式类(py2既有新式类也有经典类、py3统一为新式类;(py2中的新式类需要显示继承object))引入的
  • __new__用于控制生成一个新实例的过程。是类级别的静态方法,在创建实例对象时执行,如果自定义类中没有重写该方法,则Python自动调用父类的方法,当所有父类也没有重写定义该方法时,则直接调用object类的__new__方法。
  • __new__(cls,*args,**kwargs)  其中:

             1)    cls为创建实例对应类的类名,由Python自动传入;

             2)    args为实例创建时传入的非关键字参数,打包成元组tuple给函数体调用;

             3)    kwargs为实例创建时传入的关键字参数,字典形式的

https://blog.csdn.net/LaoYuanPython/article/details/93639520

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值