Мне действительно интересно узнать строку формата :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
.
Здесь что-то не так?