Junior — Middle
Can you explain the implementation principle of the singleton pattern in Python and its main features?
sobes.tech AI
Answer from AI
The singleton pattern in Python is implemented to ensure that only one instance of a class exists throughout the program's runtime.
One simple way to implement it is by using a class with a private instance attribute and a method that returns this single instance:
class Singleton:
_instance = None
def __new__(cls, *args, **kwargs):
if not cls._instance:
cls._instance = super().__new__(cls)
return cls._instance
# Usage
s1 = Singleton()
s2 = Singleton()
print(s1 is s2) # True
Features:
- Python does not have a built-in mechanism to restrict instance creation, so singleton is implemented manually.
- Using the new method allows control over object creation.
- Singleton is useful for managing global state, such as configurations or database connections.
- It is important to remember that excessive use of singleton can lead to problems with testing and maintaining the code.