Мне действительно интересно узнать строку формата :s в Python 3. Документация говорит !s преобразование и что :s - format_spec.
Он также говорит, что !s применит str(), но ничего не говорит о :s. Я думаю, что между ними нет существенной разницы, но я хочу быть уверенным. Может ли кто-нибудь прояснить их?
Пример кода:
print("{!s}".format("this"))
print("{:s}".format("that"))
# I want to be sure that these two are processed identically internally
Это все еще запутанно, но позвольте мне заручиться своими словами (непрофессиональными).
-
type("whatever".format)всегдаstr. - Используйте
!s, если вы хотите преобразовать объект вstrперед форматированием. -
:sозначает, что объект (или преобразованный объект) будет обрабатываться какstrво время некоторого внутреннего процесса форматирования. Это значение по умолчаниюformat_spec.
Здесь что-то не так?