Сообщить об ошибке.

Идентификаторы и ключевые слова в Python

Идентификаторы Python 3.x

Синтаксис идентификаторов в Python 3.x основан на стандарте Unicode с доработкой и изменениями. Идентификаторы (также называемые именами переменных) описываются следующими лексическими определениями.

Символы ASCII (в диапазоне U+0001 .. U+007F) для идентификаторов такие же, как в Python 2.x:

  • заглавные и строчные буквы от A до Z;
  • нижнее подчеркивание _;
  • цифры от 0 до 9;
  • в качестве первого символа НЕЛЬЗЯ использовать цифры от 0 до 9;
  • длина идентификаторов не ограничена;
  • регистр идентификаторов имеет значение.

Дополнительно смотрите материал "Соглашения об именах в Python"

Ключевые слова Python 3.x

Следующие идентификаторы используются как зарезервированные или ключевые слова языка Python 3.x и не могут использоваться как обычные идентификаторы. Они должны быть написаны точно так, как написано здесь:

False      await      else       import     pass
None       break      except     in         raise
True       class      finally    is         return
and        continue   for        lambda     try
as         def        from       nonlocal   while
assert     del        global     not        with
async      elif       if         or         yield

Мягкие ключевые слова Python 3.x

Новое в версии 3.10.

Некоторые идентификаторы зарезервированы только в определенных контекстах. Они известны как мягкие ключевые слова. Идентификаторы match, case, type и одиночное нижнее подчеркивание _ могут синтаксически выступать в качестве ключевых слов в определенных контекстах, но это различие проводится на уровне синтаксического анализатора.

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

Мягкие ключевые слова используются:

Изменено в Python 3.12: Оператор type теперь мягкое ключевое слово.

Зарезервированные классы идентификаторов

Определенные классы идентификаторов (помимо ключевых слов) имеют особые значения. Эти классы идентифицируются по шаблонам начальных и завершающих символов подчеркивания:

  • _*: не импортирован from module import *.

  • _: одиночное нижнее подчеркивание используется:

    • внутри инструкции match в шаблоне case - _ является мягким ключевым словом, которое обозначает подстановочный знак.
    • отдельно интерактивный интерпретатор делает результат последней оценки доступным в переменной _. (Он хранится в builtins модуле вместе со встроенными функциями, такими как print.)
    • в других местах _ является обычным идентификатором. Он часто используется для обозначения "специальных" элементов, но он не является специальным для самого Python.
    • также обычно используется для неиспользуемых переменных.
  • __*__: Определяемые системой имена, неофициально известные как имена "dunder". Эти имена определяются интерпретатором и его реализацией (включая стандартную библиотеку). Любое использование __*__ имен в любом контексте, которое не следует за явно документированным использованием, может быть прервано без предупреждения.

  • __*: частные/приватные имена методов класса. Имена в этой категории, когда они используются в контексте определения класса, переписываются с использованием искаженной формы, чтобы избежать конфликтов имен между "частными" атрибутами базового и производного классов.