56 Глава 2 •
Шаблоны для чистого Python
Двойной начальный и замыкающий символ подчеркивания
__var__
:
указывает на специальные методы, определенные языком Python.
Следует избегать этой схемы именования для своих собственных
атрибутов.
Одинарный символ подчеркивания
_
: иногда используется в качестве
имени временных или незначительных переменных («неважных»).
Кроме того, он представляет результат последнего выражения в сеансе
интерпретатора REPL Python.
2 .5 . Шокирующая
правда о форматировании
строковых
значений
Помните про Дзен Python и про то, как должен существовать «один —
и, желательно, только один — очевидный способ сделать это»? Вы, воз-
можно, почешете затылок, когда узнаете, что в Python существует
четыре
основных способа форматирования строковых значений.
В этом разделе я покажу, как эти четыре подхода к форматированию строк
работают и каковы их соответствующие достоинства и недостатки. Я так-
же покажу вам свое простое «эмпирическое правило» в отношении того,
как я подбираю наилучший универсальный подход к форматированию
строк.
Сразу перейдем к делу, так как нам многое нужно рассмотреть. Чтобы
получить простой игрушечный пример для экспериментов, предположим,
что у нас есть представленные ниже переменные (или на самом деле кон-
станты), с которыми мы будем работать:
>>> errno = 50159747054
>>> name = 'Боб'
И на основе этих переменных мы хотели бы сгенерировать выходное
строковое значение с сообщением об ошибке:
'Эй, Боб! Вот ошибка 0xbadc0ffee!'
2 .5 . Шокирующая правда о форматировании
строковых значений 57
Надо сказать, что
такая ошибка и впрямь испортит разработчику утро
понедельника! Но сегодня мы здесь собрались, чтобы обсудить формати-
рование строк. Поэтому приступим к работе.
№ 1 . «Классическое»
форматирование
строковых значений
Строковые значения в Python имеют уникальную встроенную операцию,
к которой можно обратиться через оператор
%
. Этот оператор представ-
ляет собой краткую форму, которая позволяет очень легко выполнять
простое позиционное форматирование. Если вы когда-либо имели дело
с функцией
printf
в языке C, то вы сразу же поймете, как эта операция
работает. Ниже дан простой пример:
>>> 'Привет, %s' % name
'Привет, Боб'
Здесь я использую спецификатор формата
%s
, чтобы сообщить Python, где
подставить значение переменной
name
, представленной в виде строкового
значения. Этот способ называется «классическим» форматированием
строк
1
.
В классическом форматировании строк существуют и другие специфика-
торы формата, служащие для того, чтобы дать вам возможность управлять
выводимым строковым значением. Например, имеется возможность пре-
образовывать числа в шестнадцатеричную форму записи или заполнять
пробелами для генерирования безупречно отформатированных таблиц
и отчетов.
Ниже я использую спецификатор формата
%x
, чтобы преобразовать цело-
численное значение в строковое и представить его как шестнадцатеричное
число:
>>> '%x' % errno
Do'stlaringiz bilan baham: