突然想写一个Python的单例

单例模式

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例

注意:

1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。

我写的当然是python了:

元类:

这里我们其实还需要真的元类是怎么回事:http://python.jobbole.com/88795/  这个篇文章写的是真的不错

学懂元类,你只需要知道两句话:

  • 道生一,一生二,二生三,三生万物
  • 我是谁?我从哪来里?我要到哪里去?

这个网站介绍的元类真的不错

第一种(也是最简单的一种):

class SingLeton(object):
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(SingLeton,cls).__new__(cls, *args, **kwargs)
        return cls._instance 

第二种,也是python中独有的的一种(先要明白python中的模块和包)

在一个py文件中,实例化一个对象,而其他文件导入这个实例对象时候 ,它就是一个单例

问题来了----为什么呢?

因为python中中,文件只导入一次,再次导入时候还是最初py文件中的实例对象

猜你喜欢

转载自www.cnblogs.com/Zhao--C/p/10191590.html