Возможно ли, чтобы класс был отформатирован по-своему с помощью оператора %
в Python? Меня интересует случай, когда строка формата будет примерно %3z
(а не просто %s
или %r
, которые обрабатываются методами __str__()
и __repr__()
). Сказано иначе: Python 2.6+ позволяет классам определять метод __format__()
: существует ли эквивалент для оператора %
?Можно ли выполнить произвольное форматирование с помощью оператора% в Python?
Я попытался определить метод __rmod()__
, в надежде, что str.__mod__()
вернется NotImplemented
и __rmod()__
будет называться, но "%3z" % …
возвращает ValueError: unsupported format character 'z'
вместо ...
Я уверен, что этого не может быть сделано. Есть ли причина, по которой вы избегаете использования формата? – mgilson
Существует причина: форматирование будет применяться к числам с неопределенностью моего пакета неопределенностей, который работает со всей версией Python *, начиная с 2.3 * (версии с 2.3 по 2.5 имеют только '%', а не 'format()'). – EOL