@my_decorator class MyClass: pass
Decorators & Metaclasses

Meaning

Applying a decorator to a class definition to modify or enhance the class.

Primary Function

Applies a decorator to alter or extend the behavior or attributes of a class.

Communicative Purpose

Signals that the class is being intentionally modified or enhanced via a decorator, indicating a design decision to alter class creation or behavior.

Pattern

@<decorator> class <ClassName>: pass

Core Structure

@decorator class ClassName: pass

Função primária

Applies a decorator to alter or extend the behavior or attributes of a class.

Propósito comunicativo

Signals that the class is being intentionally modified or enhanced via a decorator, indicating a design decision to alter class creation or behavior.

Situações de gatilho

When you need to apply a decorator to a class, such as for registering the class, adding class methods, modifying attributes, or implementing patterns like singleton or registration.

Contextos

Used in Python metaprogramming where class decorators are employed for tasks like registering plugins, adding properties, enforcing interfaces, or altering class creation.

Padrão

@<decorator> class <ClassName>: pass

Estrutura central

@decorator class ClassName: pass

Slots de substituição

<decorator>: the decorator function or class to apply; <ClassName>: the name of the class being decorated

Colocados típicos

  • @dataclass
  • @property
  • @staticmethod
  • @classmethod
  • @lru_cache
  • @singleton

Substituições comuns

  • Different decorator names (e.g.
  • @my_decorator
  • @register)
  • different class names
  • adding class body content instead of pass
  • using multiple decorators.

Erros comuns

Forgetting to return the class from the decorator (if returning a new class), applying decorator without parentheses when it requires arguments, confusing class decorators with function decorators, assuming the decorator modifies instances rather than the class itself.

Similar / contraste

Similar: function decorators, method decorators, property decorators. Contrasting: inheritance, composition, metaclasses.

Interferências

May be confused with Java annotations or C# attributes, which have similar syntax but different semantics; ensure the decorator returns a class or modifies it in place.

Família do chunk

  • function decorator
  • method decorator
  • property decorator
  • class decorator
  • decorator pattern

Nuance

The decorator receives the class object and must return a class (either the same modified class or a new class); if it returns None, the class is replaced with None, causing errors.

Efeito pragmático

Signals that the class is being intentionally modified or enhanced, indicating a metaprogramming intent and alerting readers to look for decorator-defined behavior.

Dica de memória

Think of a decorator as a label that modifies a class, like @dataclass adds generated methods.

Upgrade path

Using class decorators to modify class behavior (e.g., adding attributes, methods)

Tag de espaçamento: Medium-termIdioma?: Sim

Log in to save chunks.