什么是python单例
时间: 2023-09-08 16:07:53 浏览: 97
python 设计模式之单例模式
Python单例是一种设计模式,它确保一个类只能创建一个实例,并提供全局访问点来获取该实例。它常用于需要共享资源或避免重复创建对象的情况下。
在Python中,可以通过多种方式实现单例模式。其中一种常见的方式是使用装饰器或元类来实现。下面是一个使用装饰器实现的简单示例:
```python
def singleton(cls):
instances = {}
def wrapper(*args, **kwargs):
if cls not in instances:
instances[cls] = cls(*args, **kwargs)
return instances[cls]
return wrapper
@singleton
class MyClass:
pass
# 创建实例
obj1 = MyClass()
obj2 = MyClass()
print(obj1 is obj2) # True
```
在上面的例子中,`singleton` 装饰器将 `MyClass` 类包装起来,确保只有一个实例被创建。每次创建实例时,都会检查 `instances` 字典中是否已经存在该类的实例,如果不存在则创建并保存到字典中,否则直接返回已经创建的实例。
这样,无论我们多次创建 `MyClass` 的实例,都会得到同一个对象,从而实现了单例模式。
阅读全文