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?
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.
class foo(object):
def __str__(self):
return "representation"
def __unicode__(self):
return u"representation"