Метод keys словаря не имеет
>>> {}.keys.__doc__
>>> {}.keys.__doc__ == None
1 >>> str({}.keys.__doc__)
'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)
'buildConnectionString ' >>> s.ljust(20)
'buildConnectionString'
| ljust дополняет строку пробелами до указанной длины. Именно это делает функция help при выводе в две колонки для выравнивания строк документации во второй колонке. |
| Если требуемая длина меньше, чем исходная длина строки, ljust вернет строку без изменений. Этот метод никогда не обрезает строку. |
Ну вот и почти все сделано.
Содержание Назад Вперед