'Return representation of the referent (or a fall-back if that fails)'

def __str__(self):

    try:
        return self._callmethod('__repr__')
    except Exception:
        return (repr(self)[:(-1)] + ";    '__str__()'    failed>")
