python进阶之魔术方法详解
目录
- 一、三个内置函数
- 二、双下划线开头和结尾的方法,叫魔术方法。
- 总结
一、三个内置函数 1、
@classmethod
–类名.属性名【python进阶之魔术方法详解】2、
@staticmethod
–类名.属性名3、
@property
–设置只读属性,方法变属性,别人不易篡改,调用:类名(). 属性名二、双下划线开头和结尾的方法,叫魔术方法。 1、一个类对象,在__init__初始化之前,还有__new__方法,这里要重写__new__方法,要调用父类的new方法,且将new方法创建的对象返回,即object. new(cls),其中cls代表的是类对象本身(MyClass)。否则无返回值运行报错。
文章图片
2、单例模式
这个__new__方法的应用之一,就是单例模式。
实现思路,蓝色线一个回路。黄色线一个回路。
文章图片
具体脚本如下。t2实例对象,没有name属性,但是也神奇的输出与t1一致的结果。如此类推,其他也一样,如果把这个. py文件导入其他文件B. py中,在B. py中创建其他实例对象t3,调用这个name属性时就会输出与t1一样的结果。其次,t1、t2、t3的内存地址即id(t1)三个都是一样的。最后,还可以设置其他属性,且之间属性共用。
这个就是单例模式,即实例化一次。(如果多次实例化,设置属性,明显会浪费资源,所以单例模式诞生了。)
文章图片
总结 本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!
推荐阅读
- 用Python复现二战德军enigma密码机
- Python实现批量梯度下降法(BGD)拟合曲线
- java设计模式|java设计模式——结构型之桥接模式
- 系统性能分析从入门到进阶
- 设计模式|(设计模式十)java设计模式之桥接模式
- 挖洞实战之信息泄露与前端加密
- 寒假刷题特辑|【第五章】 C语言之牛客网刷题笔记 【点进来保证让知识充实你一整天】
- python|人工智能初识
- 网络协议之:socket协议详解之Unix|网络协议之:socket协议详解之Unix domain Socket
- python爬取免费代理并验证代理是否可用