Почему документация Python называет [1, 2] список «display» вместо «literal»? - PullRequest
1 голос
/ 07 ноября 2019

Документация Python вызывает [1, 2] " отображение списка ".

Аналогично, оно вызывает {1, 2} " set display " и {1:'a', 2:'b'}« отображение словаря ».

Почему вместо более распространенного термина «literal» используется «display»?

1 Ответ

2 голосов
/ 07 ноября 2019

Из первого абзаца предыдущего раздела :

Для построения списка, набор или словарь Python предоставляет специальный синтаксис, называемый «display», каждый из которых вдва варианта:

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

Отображение - это общий термин, который включает в себя «литералы» и понимания.

[1, foo(x), "bar"] - это литерал списка (игнорируя тот факт, что foo(x) должен оцениваться первым).

[foo(x) for x in A] - это понимание списка.

Оба являются отображением списка.


Как указывает @ r.ook, язык резервирует термин литерал , строго говоря, для выражений, которые производят константу значений таких типов, как str и int.

Константный аспект имеет решающее значение, если вы хотитеобъясните, почему f'{x}' является буквальным, а [1] - нет. Первый вычисляется во время выполнения, но результирующая строка является фиксированной, в то время как [1] может создавать список во время компиляции, но этот список может быть изменен позже.

...