Форматирование строк. Составные имена полей
Форматирование строк Строки можно создавать как с помощью одинарных, так и с помощью двойных кавычек. Давайте взглянем еще раз на humansize. py: SUFFIXES = {1000: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], ① def approximate_size(size, a_kilobyte_is_1024_bytes=True): Keyword arguments: Returns: string ''' ③ multiple = 1024 if a_kilobyte_is_1024_bytes else 1000 raise ValueError('number too large')
Python 3 поддерживает форматирование значений в строки. Форматирование может включать очень сложные выражение. Самое простое использование - это вставка значения в поле подстановки строки. > > > username = 'mark'
Составные имена полей Предыдущий пример показал простейший способ форматирования строк: поля в строке представляют из себя целые числа. Эти числа в фигурных скобках означают порядковые номера аргументов в списке параметрах метода format(). Это означает, что {0} заменяется первым аргументом (в данном случаем username), а {1} заменяется на второй аргумент (password), & c. Вы можете иметь столько номеров полей, сколько аргументов есть у метода format(). А аргументов может быть сколько угодно. Но имена полей гораздо более мощный инструмент, чем может показаться на первый взгляд.
> > > import humansize
{0} is replaced by the 1st format() argument. {1} is replaced by the 2nd. Этот пример показывает, что при форматировании в именах полей можно получить доступ к элементам и свойствам структур данных используя (почти) Python синтаксис. Это называется " составные имена полей". Следующие составные имена полей просто работают:
И чтобы взорвать ваш мозг, вот пример которые использует все вышеперечисленные возможности:
> > > import humansize Вот как это работает: Модуль sys содержит информацию об работающем интерпретаторе Python. Так как Вы его импортировали, то можете использовать в качестве аргумента метода format(). То есть поле {0} ссылается на модуль sys. sys. modules представляет из себя словарь со всеми модулями, которые на данный момент импортированы интерпретатором Python. Ключи этого словаря - это строки с именами модулей; значения - объекты, представляющие импортированные модули. Таким образом поле {0. modules} ссылается на словарь импортированных модулей. sys. modules['humansize'] - это объект, представляющий собой модуль humansize, который Вы только что импортировали. Таким образом составное поле {0. modules[humansize]} ссылается на модуль humansize. Заметьте, что синтаксис здесь отличается. В синтаксисе Python ключи словаря sys. modules являются строками, и чтобы обратиться к значениям словаря необходимо окружить кавычками имя модуля (например 'humansize'). Вот цитата из PEP 3101: Расширенное форматирование строк: " Правила для парсинга ключей очень простые. Если он начинается с цифры, то его нужно интерпретировать как число. Иначе - это строка". sys. modules['humansize']. SUFFIXES - это словарь, определенный в самом начале модуля humansize. Поле {0. modules[humansize]. SUFFIXES} ссылается на этот словарь. sys. modules['humansize']. SUFFIXES[1000] - это список суффиксов системы СИ: ['KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']. Таким образом поле {0. modules[humansize]. SUFFIXES[1000]} ссылается на этот список. А sys. modules['humansize']. SUFFIXES[1000][0] - это первый элемент списка суффиксов: 'KB'. Таким образом окончательное составное поле {0. modules[humansize]. SUFFIXES[1000][0]} заменяется на строку из двух символов KB.
Воспользуйтесь поиском по сайту: ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|