Можно ли получить список ключевых слов в Python?

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

Что-то вроде этого:

import syntax
print syntax.keywords
# prints ['print', 'if', 'for', etc...]

Ответ 1

Вы спросили о операторах, показывая ключевые слова в вашем примере вывода.

Если вы ищете ключевые слова, все они перечислены в модуле keyword:

>>> import keyword
>>> keyword.kwlist
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif',
 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import',
 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try',
 'while', 'with', 'yield']

В keyword.kwlist doc:

Последовательность, содержащая все ключевые слова, определенные для интерпретатора. Если какие-либо ключевые слова определены только активными, когда действуют конкретные инструкции __future__, они также будут включены.

Ответ 2

Встроенные функции находятся в модуле с именем __builtins__, поэтому:

dir(__builtins__)

Ответ 3

Ближайший подход, о котором я могу думать, следующий:

from keyword import kwlist
print kwlist

Стандартный keyword модуль создается автоматически. Для других вещей, связанных с анализом Python с Python, установите языковые службы набор модулей.

Что касается перечисления встроенных функций, я не понимаю, запрашиваю ли вы элементы в модуле __builtin__ или функции этого пакета, которые реализованы непосредственно в интерпретаторе CPython:

import __builtin__ as B
from inspect import isbuiltin

# You're either asking for this:
print [name for name in dir(B) if isbuiltin(getattr(B, name))]

# Or this:
print dir(B)

Ответ 4

>>> help()

help > ключевые слова

Вот список ключевых слов Python. Введите любое ключевое слово, чтобы получить дополнительную помощь.

False def if raise

None del import return

True elif in try

and else is while

as except lambda with

assert finally nonlocal yield

break for not

class from or

continue global pass