Python3: В чем разница между ключевыми словами и встроенными?

В python 3,

>>> import keyword
>>> keyword.kwlist

и

>>> import builtins
>>> dir(builtins)

- два разных списка, но они имеют некоторые общие значения, в частности

>>> set(dir(builtins)) & set(keyword.kwlist)
{'False', 'True', 'None'}

В чем разница ключевых слов и встроенных в python? и когда 'False', 'None', 'True' ключевые слова и когда они встроены? (если это имеет значение)

Ответ 1

Ключевые слова - это основные языковые конструкции, обрабатываемые синтаксическим анализатором. Эти слова зарезервированы и не могут использоваться в качестве идентификаторов: http://docs.python.org/reference/lexical_analysis.html#keywords

Builtins - это список обычно используемых, предустановленных функций, констант, типов и исключений: http://docs.python.org/library/functions.html

В Python 3 перекрывающиеся слова False, None и True являются встроенными константами, которые защищены от присваивания парсером. Это предотвращает случайную перезапись с помощью True=10. В качестве ключевого слова это назначение может быть заблокировано:

>>> True = 10
SyntaxError: assignment to keyword

Остальные встроенные функции не защищены и могут быть переназначены с помощью __builtins__.list = mylist.