Python基础 __init__与__new__区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础 __init__与__new__区别相关的知识,希望对你有一定的参考价值。
__init__与__new__区别:
__init__在python,其实是,在实例化之后执行的,用来初始化一些属性,相当于构造函数,但是又不一样
细心一些,通过参数会有所发现,其实__init__(self) self隐式的将,实例传过来。
__new__在python中其实是,在实例化之前执行的,这个通过参数一样可以看出
__new__(cls),cls是隐式的传递的类对象,并不是实例。因为__new__的任务就是,创建类实例并返回实例。
class temp(object): def __init__(self,txt): self.txt = txt print ‘__init__‘ def __new__(cls,txt): print ‘__new__‘ print txt return super(temp,cls).__new__(cls) temp(‘what?‘)
结果:
C:\Python27\python.exe D:/weixin/temp/abc.py __new__ what? __init__ Process finished with exit code 0
以上是关于Python基础 __init__与__new__区别的主要内容,如果未能解决你的问题,请参考以下文章
python3中类(class)的重点与难点:__new__ 与 __init__