Meaning
A decorator that ensures a class has only one instance and provides a global point of access to it.
Primary Function
Enforces the singleton design pattern by wrapping a class constructor to return the same instance on every instantiation.
Communicative Purpose
Expresses the intent to use a singleton pattern via a decorator in Python code.
Pattern
@singleton class <ClassName>: pass
Core Structure
@singleton class <ClassName>: pass
Função primária
Enforces the singleton design pattern by wrapping a class constructor to return the same instance on every instantiation.
Propósito comunicativo
Expresses the intent to use a singleton pattern via a decorator in Python code.
Situações de gatilho
When a single shared instance of a class is needed throughout the program, such as for a logger, configuration manager, or database connection.
Contextos
Used in Python code where a global singleton is desired, e.g., logging, configuration, caching, or resource management.
Padrão
@singleton class <ClassName>: pass
Estrutura central
@singleton class <ClassName>: pass
Slots de substituição
<ClassName>
Colocados típicos
- Logger
- config
- database
- cache
- manager
Substituições comuns
- @singleton from third‑party libraries
- metaclass‑based Singleton
- module‑level instance
Erros comuns
Forgetting to make __init__ idempotent, not handling inheritance correctly, lacking thread safety, inadvertently creating multiple instances via subclassing.
Similar / contraste
@dataclass, @property, @lru_cache, @staticmethod
Família do chunk
- singleton pattern
- decorator pattern
- singleton idiom
Nuance
Ensures exactly one instance per interpreter; thread‑safety depends on the decorator implementation; subclassing may break the singleton guarantee unless carefully designed.
Efeito pragmático
Provides a global point of access to a single shared object, often used for managing shared resources like loggers or configuration.
Dica de memória
@singleton decorator
Upgrade path
Thread‑safe singleton implementation using a metaclass or module‑level instance
Log in to save chunks.