|
|||||||
Интерполяция строк
Время создания: 29.07.2019 23:51
Раздел: Разные закладки - Python
Запись: xintrea/mytetra_db_adgaver_new/master/base/1533762885xukmsdjyev/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Все хорошо знают об операторе форматирования в языке Python. В этой заметке приводятся малоизвестные приемы его использования. В самом простом способе применения оператора форматирования его поведение аналогично функций *printf в C:
При использовании ‘%s’ или ‘%r’ объекты любого типа автоматически преобразуются к строке, как если бы к ним применялась функция str или repr соответственно:
Для длинных строк с большим количеством параметров удобнее ссылаться на значения по имени. Это позволит менять порядок следования значений в строке не меняя правый аргумент оператора форматирования:
Можно не составлять словарь самостоятельно, а использовать функцию globals, locals или vars:
Однако и это не все, что можно делать с оператором форматирования. Тем, кто знаком с языком perl, обычно сильно не достает интерполяции строк с выражениями, записанными непосредственно в строке-шаблоне. Аналогичный эффект можно получить и в языке Python с помощью простого классом, имитирующего поведение словаря: Использовать класс EvalDict можно аналогично функции vars:
Приведенный класс EvalDict обладает двумя недостатками. Во-первых, он ищет значения переменных только в глобальном пространстве имен модуля, в котором он определен. Во-вторых, он не будет обрабатывать вложенные выражения. Исправим эти недостатки.
Теперь определение класса можно спокойно вынести в отдельный модуль и использовать вложенные выражения:
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|