【说站】python中__init__ 和__new__的对比
2024-12-21
31
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电脑。
更新于:1个月前赞一波!5
相关文章
- 【说站】Python curses库如何使用
- 【说站】Python字典常用方法汇总
- 【说站】Python字符串方法如何使用
- 【说站】Python列表操作方法的整理
- 【说站】Python中os模块的功能介绍
- 【说站】python模块的搜索顺序分析
- 【说站】python抛出raise异常的注意点
- 【说站】Python psd-tools如何转换文件
- 【说站】python异常的传递
- 【说站】python自定义日志如何实现
- 【说站】python有哪些注释的种类
- 【说站】python中__new__的重写
- 【说站】python如何解决初始化执行次数
- 【说站】python错误类型捕获的方法
- 【说站】python数据结构堆的介绍
- 【说站】python参数调用的注意点
- 【说站】python Pandas读取数据文件的优点
- 【说站】python中in和is的区分
- 【说站】python异常中常见关键字
- 【说站】python os.path.join()函数的使用
文章评论
评论问答