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

pytho 单例模式

时间:2018-06-19 11:51:33      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:存在   int   使用   并发   color   需要   col   ati   目的   

单例模式存在的目的是保证当前内存中仅存在单个实例,避免内存浪费!!!

(程序如果并发量大的话,内存里就会存在非常多功能上一模一样的对象。存在这些对象肯定会消耗内存,对于这些功能相同的对象可以在内存中仅创建一个,需要时都去调用)

# 单例模式
 
class Foo:
 
    __n = None
 
    def __init__(self):
        self.name = "nick"
        self.age = 18
        self.job = "pythoner"
 
    @staticmethod
    def dl():
        if Foo.__n:
            return Foo.__n
        else:
            Foo.__n = Foo()
            return Foo.__n
 
 
# 创建对象时不能再直接使用:obj = Foo(),而应该调用特殊的方法:obj = Foo.dl() 。
 
f1 = Foo.dl()
print(f1)
f2 =Foo.dl()
print(f2)
f3 =Foo.dl()
print(f3)
 
# 运行结果
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
<__main__.Foo object at 0x0000000001142390>
def singleton(argv):
    dic = {}
 
    def s(*args, **kwargs):
 
        if argv not in dic:
            dic[argv] = argv(*args, **kwargs)
            return dic[argv]
        else:
            return dic[argv]
 
    return s
 
 
# 类上加单例装饰器
@singleton
class Foo:
    pass
 
@singleton
class Foo2:
    pass

 

pytho 单例模式

标签:存在   int   使用   并发   color   需要   col   ati   目的   

原文地址:https://www.cnblogs.com/lanyinhao/p/9197550.html

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