zoukankan      html  css  js  c++  java
  • python 单例

    python单例实现方法之装饰器实现。

    通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

    #coding:utf-8
    '''
    单例实现之装饰器实现'''
    def singleton(cls, *args, **kwargs):
        instance = {}
        def _singleton():
            if cls not in instance:
                instance[cls] = cls(*args, **kwargs)
            return instance[cls]
        return _singleton
    
    @singleton
    def MyClass():
        a = 1
        def __init__(self, x=0):
            self.x = x
    
    a = MyClass()
    b = MyClass()
    
    a.a = 3
    print b.a
    #3
    a is b
    #True

    装饰器实现的单例每次返回子函数及子函数所处的环境和环境变量,判断了cls True or False,所以会延续上次的result.

    所谓单例就是一个类只能创建一个实例化。

    •  某个类只能有一个实例
    • 它必须自行创建这个实例
    • 必须自行向整个系统提供这个实例
  • 相关阅读:
    仿微博添加和删除的动画
    到公司实习一个月记
    写一份好简历
    排序算法之快速排序
    PHP和MYSQL中的日期和时间
    我的php经历
    新的征程
    毕业设计笔记
    排序算法之总结
    javascript执行效率小结
  • 原文地址:https://www.cnblogs.com/simplezy/p/6726973.html
Copyright © 2011-2022 走看看