【视频教程】011.__init__和__new__的使用

视频中用到的代码如下:

#011.简述面向对象中__new__和__init__区别


# __init__是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。


# __new__是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。


class Book:
    def __new__(cls, title):
        if not hasattr(cls,"_ins"):
             cls._ins=super().__new__(cls)
        print('in __new__')
        return  cls._ins   


    def __init__(self, title):
        print('in __init__')
        super().__init__()
        self.title = title


if __name__ == '__main__':
     b = Book('The Spider Book')
     b2= Book('The Flask Book')
     print(id(b))
     print(id(b2))
     print(b.title)
     print(b2.title)


#也就是,__new__在__init__之前被调用,__new__的返回值(实例)
#将传递给__init__方法的第一个参数,然后__init__给这个实例设置一些参数
     

友情提示:点击阅读原文可以进入B站查看本视频高清版。

扫码关注,不迷路哦!

猜你喜欢

【视频教程】一行代码实现1-100的和

【视频教程】函数内修改全局变量 

【视频教程】003-列举5个python标准库    

【视频教程】004.字典删除键值对和合并字典

【视频教程】005. 单引号、双引号和三引号的区别   

【视频教程】006.列表重复元素去除

【视频教程】007.args和kwargs的理解

【视频教程】008.python中单下划线和双下划线

【视频教程】009.说说AOP和装饰器

【视频教程】010.Python内置数据类型

如果觉得文章对您有用,可以帮我点下下面的广告,我可以得到几毛钱,就当打赏了,谢谢。

导语

你千万别跟任何人谈任何事情。你只要一谈起,就会想念起每一个人来,我只知道我很想念我所谈到的每一个人。

          ——J·D·塞林格《麦田里的守望者》

《权力的游戏》: 你可能错过的微妙细节

现代向RIMAC投资9000万美元!

沃达丰7月3日推出5G

▼立即加星标,每天看好文▼

1

2

极客学习空间

新媒体人都在关注

喜欢,就为我标星

我今天才知道,我之所以漂泊就是在向你靠近。

--《廊桥遗梦》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值