Почему нет «списка» зарезервированного слова в Python?

Я просто получил ошибку от ошибки, которая была бы предотвращена, если бы list был зарезервированным словом в Python. (Разумеется, с моей стороны.

Так почему же не список (или dict или float или какой-либо из типов) зарезервированное слово? Кажется, проще добавить ошибку интерпретатора, чем попытаться запомнить правило.

(Я также знаю, что Eclipse / PyDev имеет настройку, которая напомнит вам об этом правиле, которое может быть полезно.)

4 Solutions collect form web for “Почему нет «списка» зарезервированного слова в Python?”

Сохраняются только ключевые слова .

list – это не ключевое слово, а встроенный тип, как str , set , dict , unicode , int , float и т. д.

Нет смысла резервировать каждый возможный встроенный тип; python – динамический язык, и если вы хотите заменить встроенные типы локальным именем, которое его тенями, вы должны уметь.

Подумайте о list и других типах в качестве предварительно импортированной библиотеки типов объектов; вы бы не ожидали, что defaultdict из collections будет зарезервирован?

Используйте статический анализатор кода для обнаружения таких ошибок; большинство IDE позволяют легко интегрировать их.

Посмотрите на это: http://docs.python.org/2/reference/lexical_analysis.html#keywords

list – это просто тип и не зарезервирован (ни int , float , dict , str … вы не понимаете).

Вероятно, по той же причине, для которой классы не имеют частных атрибутов. Это дух Питона.

Это немного вопрос мнения, но вот мой 2c.

Очень важно сделать ключевое слово зарезервированным, так как по сути это означает, что вы никогда не сможете использовать это ключевое слово в коде, поэтому часто считается хорошим языком программирования, чтобы сохранить список коротким. (perl не делает, но тогда perl имеет совершенно другую философию для большинства других языков программирования и использует специальные знаки перед переменными, чтобы попытаться предотвратить столкновения).

В любом случае, чтобы понять, почему это так, рассмотрите возможность переадресации. Представьте себе, что разработчики python решили, что array является такой фундаментальной концепцией, что они хотят сделать его встроенным (не непостижимым – это произошло с set in, um, python 2.6?). Если встроенные функции были автоматически зарезервированы, то любой, кто ранее использовал array для чего-то другого (даже если явно импортирован как from superfastlist import array ), или реализовал свои собственные ( numpy сделал это), вдруг обнаружил бы, что их код не будет работать , и они были бы очень сердиты.

(Если на то пошло, подумайте, была ли help сделана зарезервированным словом – библиотеки zillion, включая argparse, используйте help как аргумент ключевого слова)

  • Есть ли простой однострочный доступ для доступа к каждому элементу вложенного словаря в Python?
  • Комплексное преобразование набора данных в пандах
  • Как добавить дополнительные данные в сообщения Django?
  • Установленный нос, но не может использоваться в командной строке
  • MemoryError при преобразовании txt в xlsx
  • Ошибка Python XVFB в окнах
  • Как сделать объект и итератором Python2 и Python3?
  • Почему конда и пип просто перестали работать? Объект CompiledFFI не имеет атрибута 'def_extern'
  • Scrapy Follow & Scrape next Pages
  • возвращать строки в фрейме данных, ближайшем к определенному пользователем числу
  • Отправить HTML-почту с помощью Unicode
  • Python - лучший язык программирования в мире.