class C:

    def __str__(self):
        return 'str'

def __repr__(self):
    return 'repr'

def __format__(self, format_spec):
    return 'format as ' + str(type(format_spec))
c = C()
print('{0}'.format(c))
print('{0}'.format(c))
print('{0!s}'.format(c))
print('{0!r}'.format(c))
Строковый формат Python: когда использовать флаг преобразования !s