__new__ __init_
时间: 2023-09-10 08:06:34 浏览: 108
__new__ 和 __init__ 是Python中的两个特殊方法,它们在对象的创建和初始化过程中起着不同的作用。
__new__ 方法是一个静态方法,负责创建对象并返回一个实例。它是在对象实例化之前被调用的,并且必须返回一个实例。通常情况下,我们不需要自己实现 __new__ 方法,因为Python会默认提供一个实现。但是,在某些特殊情况下,比如创建一个不可变对象,我们可能需要重写 __new__ 方法来控制对象的创建过程。
__init__ 方法是一个实例方法,负责对象的初始化。它在对象实例化之后被调用,并且不返回任何值。在 __init__ 方法中,我们可以对对象的属性进行赋值,进行一些初始化操作。通常情况下,我们会在 __init__ 方法中传入一些参数来初始化对象的属性。
总结来说,__new__ 负责对象的创建,而 __init__ 负责对象的初始化。在创建一个对象时,首先会调用 __new__ 方法来创建对象实例,然后再调用 __init__ 方法来对对象进行初始化。这样的设计使得我们可以更加灵活地控制对象的创建和初始化过程。 <span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [Python中__new__和__init__的区别与联系](https://download.csdn.net/download/weixin_38698174/13742085)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [深入理解Python中的 __new__ 和 __init__及区别介绍](https://download.csdn.net/download/weixin_38670065/12866950)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [浅谈python中的__init__、__new__和__call__方法](https://download.csdn.net/download/weixin_38646706/14912670)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文