В глубь языка Python


Объединяем все вместе - часть 2


>>> {}.keys.__doc__

1

>>> {}.keys.__doc__ == None

2

1 >>> str({}.keys.__doc__)

3

'None'

Метод keys словаря не имеет строки документации, так что его атрибут __doc__ равен None. Если вы набираете выражение для атрибута __doc__

непосредственно в интерактивном режиме, интерпретатор Python ничего не выводит, что может сбить с толку (такое поведение интерпретатора действительно удобно, если впомнить о процедурах, которые в языке Python возвращают None).

Вы можете убедиться, что атрибут __doc__ действительно равен None простым сравнением.
Функция str возвращает строковое представление объекта, в данном случае 'None'.
Замечание
В SQL вы должны использовать IS NULL вместо = NULL для сравнения с пустым значением. В языке Python вы можете использовать как == None, так и is None, но второй вариант работает быстрее.

Теперь, когда мы уверены в том, что значение всегда будет строковым, можно передать его функции processFunc, которая сворачивает символы пропуска или возвращает строку без изменений. Теперь вы видите, почему важно использовать функцию str для преобразования None к строке. processFunc считает, что ее аргумент является строкой и вызывает его метод split. При попытке вызвать processFunc

для None будет сгенерировано исключение, так как у None нет метода split.

Далее мы снова используем форматирование, чтобы соединить значение, возвращаемое функцией processFunc, со результатом применения метода ljust к строке method. Это новый метод строковых объектов, который мы раньше не видели.

Пример 2.28. Метод ljust

>>> s = 'buildConnectionString' >>> s.ljust(30)

1

'buildConnectionString ' >>> s.ljust(20)

2

'buildConnectionString'

ljust дополняет строку пробелами до указанной длины. Именно это делает функция help при выводе в две колонки для выравнивания строк документации во второй колонке.
Если требуемая длина меньше, чем исходная длина строки, ljust вернет строку без изменений. Этот метод никогда не обрезает строку.

Ну вот и почти все сделано.


Начало  Назад  Вперед



Книжный магазин