韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > Python高级 > 一文读懂Python中__new__和__init__的区别与联系

一文读懂Python中__new__和__init__的区别与联系

头像

silencement

2019-07-19 09:29:164341浏览 · 0收藏 · 0评论

__new__ 和 __init__ 的区别主要表现在:

它自身的区别;

在Python中新式类和老式类的定义。

__new__ 负责对象的创建,而 __init__ 负责对象的初始化。

__new__:创建对象时调用,会返回当前对象的一个实例

__init__:创建完对象后调用,对当前对象的一些实例初始化,无返回值

1. 在类中,如果__new__和__init__同时存在,会优先调用__new__

class ClsTest(object):
    def __init__(self):
        print("init")
    def __new__(cls,*args, **kwargs):
        print("new")
  
ClsTest()

输出

new

2. 如果__new__返回一个对象的实例,会隐式调用__init__

代码实例:

class ClsTest(object):
    def __init__(self):
        print ("init")
    def __new__(cls,*args, **kwargs):
        print ("new %s"%cls)
        return object.__new__(cls, *args, **kwargs)
  
ClsTest()

输出

new <class '__main__.ClsTest'>
init

3. __new__方法会返回所构造的对象,__init__则不会。__init__无返回值。

class ClsTest(object):
     def __init__(cls):
             cls.x = 2
             print ("init")
             return cls
  
ClsTest()

输出

init
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: __init__() should return None, not 'ClsTest'

4. 若__new__没有正确返回当前类cls的实例,那__init__是不会被调用的,即使是父类的实例也不行

class ClsTest1(object):
    pass
  
class ClsTest2(ClsTest1):
    def __init__(self):
        print ("init")
    def __new__(cls,*args, **kwargs):
        print ("new %s"%cls)
        return object.__new__(ClsTest1, *args, **kwargs)
  
b=ClsTest2()
print (type(b))

输出

new <class '__main__.ClsTest2'>
<class '__main__.ClsTest1'>

总结

1. 继承自object的新式类才有__new__

2. __new__至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动提供,__new__必须要有返回值,返回实例化出来的实例,可以return父类__new__出来的实例,或者直接是object的__new__出来的实例

3. __init__有一个参数self,就是这个__new__返回的实例,__init__在__new__的基础上可以完成一些其它初始化的动作,__init__不需要返回值

4. 如果__new__返回一个对象的实例,会隐式调用__init__。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

动漫网| 亚洲日韩AV精品一区二区| 蜜桃成熟时2| 久久午夜国产精品WWW| 一边吃奶一边添P好爽视频| 女性私处蹲下拍照有疙瘩| 种马农场(6P)--骑当千菁T..| 午夜成人理论片A片AAA软件 | 每日大赛| 国产在线观看免费全集电视剧网站| 妈妈叫我戴上避孕套英文| 林语惊| 梁祝艳谭5免费观看| 王叔我老公还在客厅呢什么小说 | 国产真实乱人偷精品视频免费 | 茄子视频| YY影院免费观看电视剧网站 | 善良的小峡子 4| 免费视频在线观看人数在哪直播| 叛逆儿子暴躁老妈的表现| 丈夫不在家儿媳想老公的背景故事 | 每日大赛| 小日子在线观看高清完整版| 中国高清WINDOWS视频| 一家乱战1-13集小说免费阅读| 男同网站| 小俊在雪姨身上耕耘小说免费阅读 | 白丝袜精华液抹在脚上的功效| 朕心爱的丑姑娘| 没带置子让他吃了一天的药怎么办| 他的水蜜桃BY林烟烟免费阅读| 河莉秀电影| 亚洲XXX午休国产熟女| 成人视频在线观看| Y31成色1.23C| 日韩在线| 小雪乖...把腿张开一点视频| 天香天堂免费观看电视剧| 意大利《医务室绣感》| 《蜜桃成熟时1997》主题曲歌...| 一边啃奶头一边躁狂会怎么样