Björn Pollex Björn Pollex - 4 months ago 19
Python Question

How to create a custom string representation for a class object?

Consider this class:

class foo(object):
pass


The default string representation looks something like this:

>>> str(foo)
"<class '__main__.foo'>"


How can I make this display a custom string?

Answer

Implement __str__() or __repr__() in the class's metaclass.

class MC(type):
  def __repr__(self):
    return 'Wahaha!'

class C(object):
  __metaclass__ = MC

print C

Use __str__ if you mean a readable stringification, use __repr__ for unambiguous representations.