码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础(十) __init__与__new__区别

时间:2017-11-03 18:57:12      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:hat   属性   font   类对象   pytho   传递   __new__   roc   init   

__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__区别

标签:hat   属性   font   类对象   pytho   传递   __new__   roc   init   

原文地址:http://www.cnblogs.com/yhleng/p/7779267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!