__new__()方法详解:Python对象创建揭秘
112 浏览量
更新于2023-05-11
收藏 38KB PDF 举报
"本文详细讲解了Python中的`__new__()`方法,它是Python类创建过程中的重要组成部分。在Python2.x中,`__new__()`是类的一个特殊方法,它在实例化新对象时被调用,通常在`__init__()`方法之前。`__new__()`方法的主要职责是在创建新对象之前进行必要的设置,比如设置对象的状态或元数据,但它的核心任务是返回一个新的对象实例。
`__new__()`方法的第一个参数`cls`代表需要实例化的类,Python解释器会在实例化过程中自动提供。它是一个静态方法,这意味着你可以直接调用`Demo.__new__(...)`而无需创建Demo的实例。这个方法接受任意数量的位置参数`*args`和关键字参数`**kwargs`,这些参数可以在子类中根据需要处理。
在`Demo`类的例子中,`__new__()`首先打印出调用的类名,然后利用`object.__new__(cls, *args, **kwargs)`调用父类`object`的`__new__()`方法来创建新对象。这个方法的返回值就是新创建的对象实例,它会被传递给`__init__()`方法作为`self`参数。
`__init__()`方法则负责对新创建的对象进行初始化,例如设置属性、执行特定操作等。在`Demo`类中,`__init__()`会在`__new__()`之后被调用,打印出'__init__() called'。
如果`__new__()`没有正确地返回一个新对象,那么`__init__()`将不会被执行,即使返回的是父类的实例也不行。这体现了类的继承机制:只有当新对象被成功创建后,后续的初始化步骤才会被执行。
`__new__()`方法在Python类的生命周期中扮演着关键角色,它控制着对象的创建过程,而`__init__()`则负责对象的具体初始化。理解这两个方法的协作对于编写高效、可扩展的Python代码至关重要。"
2020-12-26 上传
2020-09-18 上传
2020-12-22 上传
2020-12-24 上传
2020-12-24 上传
2020-12-24 上传
2020-12-25 上传
2020-09-21 上传
2021-01-20 上传
weixin_38629391
- 粉丝: 4
- 资源: 928
最新资源
- SSM动力电池数据管理系统源码及数据库详解
- R语言桑基图绘制与SCI图输入文件代码分析
- Linux下Sakagari Hurricane翻译工作:cpktools的使用教程
- prettybench: 让 Go 基准测试结果更易读
- Python官方文档查询库,提升开发效率与时间节约
- 基于Django的Python就业系统毕设源码
- 高并发下的SpringBoot与Nginx+Redis会话共享解决方案
- 构建问答游戏:Node.js与Express.js实战教程
- MATLAB在旅行商问题中的应用与优化方法研究
- OMAPL138 DSP平台UPP接口编程实践
- 杰克逊维尔非营利地基工程的VMS项目介绍
- 宠物猫企业网站模板PHP源码下载
- 52简易计算器源码解析与下载指南
- 探索Node.js v6.2.1 - 事件驱动的高性能Web服务器环境
- 找回WinSCP密码的神器:winscppasswd工具介绍
- xctools:解析Xcode命令行工具输出的Ruby库