Python基础(十) __init__与__new__区别

__init__与__new__区别:python

__init__在python,实际上是,在实例化以后执行的,用来初始化一些属性,至关于构造函数,可是又不同函数

细心一些,经过参数会有所发现,其实__init__(self)  self隐式的将,实例传过来。学习

 

__new__在python中实际上是,在实例化以前执行的,这个经过参数同样能够看出spa

__new__(cls),cls是隐式的传递的类对象,并非实例。由于__new__的任务就是,建立类实例并返回实例。code

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

 

 

Linux and python学习交流1,2群已满.blog

Linux and python学习交流3群新开,欢迎加入,一块儿学习.qq 3群:563227894it

不前进,不倒退,中止的状态是没有的.class

一块儿进步,与君共勉,object

相关文章
相关标签/搜索