Python使用metaclass实现Singleton模式的方法
程序员文章站
2022-05-05 09:45:54
...
本文实例讲述了Python使用metaclass实现Singleton模式的方法。分享给大家供大家参考。具体实现方法如下:
class Singleton(type): def __call__(cls, *args, **kwargs): print "Singleton call" if not hasattr(cls, 'instance'): cls.instance = super(Singleton, cls).__call__(*args, **kwargs) return cls.instance def __new__(cls, name, bases, dct): print "Singleton new" return type.__new__(cls, name, bases, dct) def __init__(cls, name, bases, dct): print "Singleton init" super(Singleton, cls).__init__(name, bases, dct) class Cache(object): __metaclass__ = Singleton def __new__(cls, *args, **kwargs): print "Cache new" return object.__new__(cls, *args, **kwargs) def __init__(cls, *args, **kwargs): print "Cache init" def __call__(cls, *args, **kwargs): print "Cache call" print Cache() print Cache()
输出:
Singleton new Singleton init Singleton call Cache new Cache init <__main__.cache object at> Singleton call <__main__.cache object at>
希望本文所述对大家的Python程序设计有所帮助。
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
相关文章
相关视频
专题推荐
-
独孤九贱-php全栈开发教程
全栈 170W+
主讲:Peter-Zhu 轻松幽默、简短易学,非常适合PHP学习入门
-
玉女心经-web前端开发教程
入门 80W+
主讲:灭绝师太 由浅入深、明快简洁,非常适合前端学习入门
-
天龙八部-实战开发教程
实战 120W+
主讲:西门大官人 思路清晰、严谨规范,适合有一定web编程基础学习
推荐阅读
-
常见的在Python中实现单例模式的三种方法
-
Python使用urllib2模块实现断点续传下载的方法
-
python使用epoll实现服务端的方法
-
python使用paramiko实现远程拷贝文件的方法
-
Python使用logging结合decorator模式实现优化日志输出的方法
-
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
-
使用python PIL库实现简单验证码的去噪方法步骤
-
python使用reportlab实现图片转换成pdf的方法
-
Python使用logging模块实现打印log到指定文件的方法
-
Python实现在tkinter中使用matplotlib绘制图形的方法示例
网友评论
文明上网理性发言,请遵守 新闻评论服务协议
我要评论