设计模式中,单例模式是很常见的,今天总结下 Python 的几种实现方式。
使用 import
import
是 Python 中的天然单例模式,我最先推荐这种方式。
创建两个文件 signletion.py
signletion_import.py
,文件内容如下
1 | #!/usr/bin/env python |
1 | #!/usr/bin/env python |
运行结果只输出一次 new instance
,代表只生成一个实例,创建单例成功,后续我们都用这种验证方式。
使用 new 方法
直接修改 __new__
方法,类似 Java 的实现方式,实际开发中,我们可以在父类中实现方法,并继承
1 | #!/usr/bin/env python |
使用装饰器
装饰器是比较 Python 的方式,内部实现跟 __new__
很像,判断已经有实例则不再生成。
1 | #!/usr/bin/env python |
使用元类
元类同样是 Python 特有的,不过并不常用,我们可以利用它的特性来实现单例
1 | #!/usr/bin/env python |
完整 demo 地址:https://github.com/wxnacy/study/tree/master/python/singletion
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章