Is there a way to auto generate a __str__() implementation in python?
You can iterate instance attributes using vars, dir, …: def auto_str(cls): def __str__(self): return ‘%s(%s)’ % ( type(self).__name__, ‘, ‘.join(‘%s=%s’ % item for item in vars(self).items()) ) cls.__str__ = __str__ return cls @auto_str class Foo(object): def __init__(self, value_1, value_2): self.attribute_1 = value_1 self.attribute_2 = value_2 Applied: >>> str(Foo(‘bar’, ‘ping’)) ‘Foo(attribute_2=ping, attribute_1=bar)’