Use metaclass to define the representation of a class (not an instance).
>>> class Pretty(type): ... def __str__(cls): ... return '<Class ' + cls.__name__ +'>' ... >>> class Foo(object): ... __metaclass__ = Pretty ... >>> str(Foo) '<Class Foo>' >>>
Representation of an instance can be done using class. Representation of a class can be done using meta-class. The code is adapted from this <a href=http://orbtech.com/blog/simplemetaclass>blog post</a>.