python单例设计模式
时间: 2024-10-04 22:03:18 浏览: 31
Python中的单例设计模式是一种创建类的方式,确保该类只有一个实例,并提供一个全局访问点。这是一种常用的软件设计模式,用于控制资源管理,比如数据库连接、线程池等。在Python中,由于它不是一种语言特性,而是通过一些编程技巧来实现的。以下是常见的两种实现方式:
1. 静态类+私有构造函数:
```python
class Singleton:
_instance = None
def __init__(self):
if not isinstance(self, Singleton):
raise TypeError("This is a singleton class")
@classmethod
def get_instance(cls):
if cls._instance is None:
cls._instance = cls()
return cls._instance
```
在这个例子中,`__init__`方法被设为私有的,防止直接实例化,而`get_instance`作为类方法返回唯一的实例。
2. 使用装饰器:
```python
def singleton(cls):
instances = {}
def get_instance():
if cls not in instances:
instances[cls] = cls()
return instances[cls]
return get_instance
@singleton
class AnotherSingleton:
pass
```
这里,`singleton`装饰器确保每次请求`AnotherSingleton`类时都只会返回一个已存在的实例。
阅读全文