Попробуйте этот справочный инструмент сообщения об ошибках PHP . Это очень хорошая визуальная ссылка и помогла мне понять механизм создания сложных ошибок.
Python 3.6 добавляет литеральную строчную интерполяцию, которая написана префиксом f
. См. PEP 0498 - Интерполяция литеральных строк .
Это позволяет писать
>>> x = 'hello'
>>> s = f'{x}'
>>> print(s)
hello
Следует отметить, что это не фактические строки, но представлять код, каждый раз оценивающий строку. В приведенном выше примере s
будет иметь тип str
со значением 'hello'
. Вы не можете передать f
-струю вокруг, так как она будет оценена до результата str
перед использованием (в отличие от str.format
, но, как и любой другой модификатор строкового литерала, такой как r'hello'
, b'hello'
, '''hello'''
). ( PEP 501 - Интерполяция строк общего назначения (в настоящее время отложена) предлагает строковый литерал, который будет оценивать объект, который может принимать подстановки позже.)
Python напрямую не поддерживает переменную интерполяцию. Это означает, что в нем нет определенной функциональности (а именно, вызова функции в строках), которую поддерживают другие языки.
Итак, на самом деле нет ничего, что можно сказать здесь, кроме как нет, вы не можете этого сделать. Это не так, как работает синтаксис форматирования Python
.Самое лучшее, что у вас есть:
"my request url was {0}".format(request.get_full_path())
Как насчет этой очень странной вещи?
"my request url was %s and my post was %s"\
% (lambda r: (r.get_full_path(), r.POST))(request)
Объяснение:
Я по-прежнему предпочитаю, как вы это делаете.
Если вы хотите читать, вы можете это сделать:
path, post = request.get_full_path(), request.POST
"my request url was {} and my post was {}".format(path, post)
{:%Y}
, и он работает.
– Hassek
5 November 2013 в 20:46