【说站】python中__init__ 和__new__的对比
2024-12-21
5
python中__init__ 和__new__的对比
作用不同
1、__new__ 是用来创建类并返回这个类的实例,而 __init__ 只是将传入的参数来初始化该实例。
__init__() 初始化方法 和 __new__(),通过类创建对象时,自动触发执行。
概念不同
2、__new__() 创建对象时调用,会返回当前对象的一个实例
__init__() 创建完对象后调用,对当前对象的一些实例初始化,无返回值
实例
# __init__ 、 __new__ class Student(object): def __init__(self, name, age): print('__init__() called') self.name = name self.age = age def __new__(cls, *args, **kwargs): print('__new__() called') print(cls, args, kwargs) return super().__new__(cls) # ipython 测验 In [26]: s1 = Student('hui', age=21) __new__() called <class '__main__.Student'> ('hui',) {'age': 21} __init__() called In [27]: s2 = Student('jack', age=20) __new__() called <class '__main__.Student'> ('jack',) {'age': 20} __init__() called
以上就是python中__init__ 和__new__的对比,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
更新于:13小时前赞一波!2
相关文章
- 【说站】python中类对象及类属性的介绍
- 【说站】python中__call__的触发执行
- 【说站】python类实例化如何实现
- 【说站】python实例属性的查找顺序
- 【说站】python保护变量是什么
- 【说站】python中__enter__和__exit__的应用场景
- 【说站】python数据预处理的三种情况
- 【说站】python自动化测试需要学习什么?
- 【说站】python如何读取不同格式文件
- 【说站】python API接口如何测试
- 【说站】python文件拆分与合并的方法
- 【说站】Python如何实现时间累加的计算器
- 【说站】Python列表中有哪些索引
- 【说站】python pyglet模块如何使用
- 【说站】python输入成绩求平均分
- 【说站】python温度转换代码
- 【说站】python怎么将整数反转输出
- 【说站】python可迭代对象的本质探究
- 【说站】python迭代器的应用场景
- 【说站】python如何创建GUI程序
文章评论
评论问答