示例#1
0
#装饰器版本
def singleton(cls, *args, **kw):
    instances = {}

    def getinstance():
        if cls not in instances:
            instances[cls] = cls(*args, **kw)
        return instances[cls]

    return getinstance


@singleton
class MyClass:
    ...


#import方法
class My_Singleton(object):
    def foo(self):
        pass


my_singleton = My_Singleton()

# to use
from mysingleton import my_singleton

my_singleton.foo()
示例#2
0
def singleton(cls, *args, **kw):
    """
    装饰器版本
    """
    instances = {}
    def getinstance():
        if cls not in instances:
            instances[cls] = cls(*args, **kw)
        return instances[cls]
    return getinstance

@singleton
class MyClass:
    pass

"""
import方法
作为python的模块是天然的单例模式
"""
# mysingleton.py
class My_Singleton(object):
    def foo(self):
        pass

my_singleton = My_Singleton()

# to use
from mysingleton import my_singleton

my_singleton.foo()