为了账号安全,请及时绑定邮箱和手机立即绑定

python初级问题5

python初级问题5

慕无忌0492270 2019-02-04 17:04:51
这段代码错误错在哪里
查看完整描述

1 回答

已采纳
?
pardon110

TA贡献1038条经验 获得超227个赞

__new__方法的调用是发生在__init__之前的。其实当 你实例化一个类的时候,具体的执行逻辑是这样的:

1. p = Person(name, age)

2. 首先执行使用name和age参数来执行Person类的__new__方法,这个__new__方法会 返回Person类的一个实例(通常情况下是使用 super(Persion, cls).__new__(cls, ... ...) 这样的方式),

3. 然后利用这个实例来调用类的__init__方法,上一步里面__new__产生的实例也就是 __init__里面的的 self

__init__ 和 __new__ 区别在于:

1.__init__ 通常用于初始化一个新实例,控制这个初始化的过程,比如添加一些属性, 做一些额外的操作,发生在类实例被创建完以后。它是实例级别的方法。

2.__new__ 通常用于控制生成一个新实例的过程。它是类级别的方法。


查看完整回答
反对 回复 2019-02-06
  • 慕无忌0492270
    慕无忌0492270
    感谢您的问答,但您只是非常详细的解释了__new__方法和__init__方法,还没有很好的解释这段代码的错误之处
  • 1 回答
  • 0 关注
  • 662 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信