【Python零基础入门篇 · 25】:init和new方法、单例模式

init和new方法


init其实不是实例化对象后最先调用的方法,最先调用的是new方法。

实例化对象后代码执行的步骤
类名(),实例化对象时,python解释器首先会调用new方法,为对象分配空间,然后再执行init初始化对象。

new方法的作用

  • 在内存中为对象分配空间
  • 返回对象的引用

python解释器获得对象的引用后,将引用作为第一个参数,传递给init方法。
在这里插入图片描述

重写new方法

返回对象引用的方式

  • 父类名.方法名(cls)
  • super().方法名(cls)
    在这里插入图片描述

总结

  • init方法是什么时候被自动调用?实例化的时候。
  • new方法是用来创建对象,new方法是从哪里来的?new方法是从objec中来的。
  • self里面是什么?self代表实例化对象本身,它是new方法创建的,然后发送给init使用。

执行步骤:
一个对象的实例化过程,先执行new方法,如果没有写new,默认调用object中的new方法,返回一个实例化对象,然后再调用init方法,对这个对象进行初始化。

init和new的区别

  • new方法,创建对象;init方法,初始化对象。
  • new方法,返回对象引用;init方法,定义实例属性。
  • new方法,是类级别的方法;init方法,是实例级别的方法。

单例模式


单例模式:是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

单例模式的作用

  • 一个特殊的类,这个类只能创建一次实例
  • 实例化不同的对象,内存地址不同
  • 单例模式可以节省空间,实例化不同对象会产生不同的内存地址,造成浪费资源。

实现单理模式的方法

  • 通过@classmethod
  • 通过装饰器实现
  • 通过__new__实现
  • 通过导入模块时实现
通过__new__实现单例模式

在这里插入图片描述

通过装饰器实现单例模式
  • 理解部分
    在这里插入图片描述
  • 实现部分
    在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值