pythonbeginner

Metaprogramming

Advanced Python pattern: metaprogramming

python
def add_repr(cls):
    def __repr__(self):
        vals = ', '.join(f"{k}={v!r}" for k, v in self.__dict__.items())
        return f"{cls.__name__}({vals})"
    cls.__repr__ = __repr__
    return cls

@add_repr
class User:
    def __init__(self, name: str):
        self.name = name

print(User('alice'))

Use Cases

  • advanced programming
  • patterns

Tags

Related Snippets

Similar patterns you can reuse in the same workflow.