Mẫu Singleton cung cấp một chiến lược để giới hạn số lượng các thể hiện của lớp là một. Do đó, cùng một đối tượng luôn được chia sẻ bởi các phần khác nhau của mã. Singleton có thể được coi là một giải pháp tốt hơn cho biến toàn cục vì dữ liệu thực tế được ẩn sau giao diện lớp Singleton.
Đoạn mã sau là một trong nhiều cách khác nhau để tạo một lớp singleton
class Singleton(object): _instance = None def __new__(class_, *args, **kwargs): if not isinstance(class_._instance, class_): class_._instance = object.__new__(class_, *args, **kwargs) return class_._instance class MyClass(Singleton, BaseClass): pass
Đó là một lớp học thực sự