码迷,mamicode.com
首页 > 其他好文 > 详细

单例模式

时间:2019-01-27 16:50:02      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:一个   print   repr   sel   关键点   not   单例模式   实例化   super   

模式定义:

单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类,它提供全局访问的方法。

三个关键点:

1. 该类只能有一个实例;

2. 它必须在类内部自行创建这个实例;

3. 它必须自行向整个系统提供这个实例。

 

 

class Singleton(object):
    _instance = None
    def __new__(cls, *args, **kw):
        if not cls._instance:
            cls._instance = super().__new__(cls, *args, **kw)
            cls._instance._age = 20
        return cls._instance
    
class SingleBoy(Singleton):
    
    def grow(self):
        self._age += 1
    
    @property
    def age(self):
        return self._age
    
    def __repr__(self):
        return str(self._age)

me = SingleBoy()
you = SingleBoy()
he = SingleBoy()
print(str(id(my))+"\n"+str(id(you))+"\n"+str(id(he)))
>>>
1258485744472
1258485744472
1258485744472

 

单例模式

标签:一个   print   repr   sel   关键点   not   单例模式   实例化   super   

原文地址:https://www.cnblogs.com/zenan/p/10315677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!