Python语言可使用类修饰符实现单例。
def singleton(cls):
_instance = None
def wrapper():
nonlocal _instance
if _instance is None:
_instance = cls()
return _instance
return wrapper
@singleton
class cls1:
def __init__(self):
pass
a=cls1()
b=cls1()
print(a is b)
输出结果为:
True
修饰符(decorator)
以下引自Python documents。
A function returning another function, usually applied as a function transformation using the @wrapper syntax.
The decorator syntax is merely syntactic sugar, the following two function definitions are semantically equivalent:
def f(...):
...
f = staticmethod(f)
@staticmethod
def f(...):
...
文章介绍了如何使用Python的类修饰符(装饰器)来实现单例模式,展示了相关代码示例,其中@singleton装饰器用于确保类只有一个实例。同时,解释了装饰器的基本概念,它是返回另一个函数的函数,通常用于函数变换。文中提供的例子展示了装饰器语法的等效性,与使用staticmethod的直接定义方式相比较。
309

被折叠的 条评论
为什么被折叠?



