Можно ли получить список ключевых слов в Python? - PullRequest
32 голосов
/ 10 марта 2012

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

Примерно так:

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

Ответы [ 6 ]

63 голосов
/ 10 марта 2012

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

Если вы ищете ключевых слов , они 'Все перечисленные в модуле 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__, они также будут включены.

9 голосов
/ 10 марта 2012

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

dir(__builtins__)
5 голосов
/ 10 марта 2012

Наиболее близким подходом, который я могу придумать, является следующее:

from keyword import kwlist
print kwlist

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

Что касается перечисления встроенных функций, мне не ясно, запрашиваете ли вы элементы в __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)
2 голосов
/ 27 августа 2018

Или вы можете import builtins:

>>> import builtins
>>> dir(builtins)
['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '_', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']
>>> 

ИЛИ (не содержит ошибок и прочего с __ рядом с ними):

>>> help('keywords')

Here is a list of the Python keywords.  Enter any keyword to get more help.

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                
0 голосов
/ 07 июня 2018

Получить список всех ключевых слов Pythons

  • 2018-06-07

Стандартный модуль ключевого слова генерируется автоматически (Quine) Quine (вычисления)

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
>>> len(keyword.kwlist)
33

Я классифицировал ключевые слова для дальнейшего использования.

keywords_33=[
    ('file_2', ['with', 'as']),
    ('module_2', ['from', 'import']),
    ('constant_3', {'bool': ['False', 'True'], 
                    'none': ['None']}),
    ('operator_5',
            {'logic': ['and', 'not', 'or'],
            'relation': ['is', 'in']}),
    ('class_1', ['class']),
    ('function_7',
            ['lambda','def','pass',
            'global','nonlocal',
            'return','yield']),
    ('loop_4', ['while', 'for', 'continue', 'break']),
    ('condition_3', ['if', 'elif', 'else']),
    ('exception_4', ['try', 'raise','except', 'finally']),
    ('debug_2', ['del','assert']),
]
0 голосов
/ 09 декабря 2017

>>> 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...