是否有可能在Python中获取关键字列表?

rec*_*gle 33 python syntax list

我想得到所有Pythons关键字的列表作为字符串.如果我能为内置函数做类似的事情,那也会很有趣.

像这样的东西:

import syntax
print syntax.keywords
# prints ['print', 'if', 'for', etc...]
Run Code Online (Sandbox Code Playgroud)

Rik*_*ggi 66

您在输出示例中显示关键字时询问了语句.

如果您正在寻找关键字,它们都会在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']
Run Code Online (Sandbox Code Playgroud)

来自keyword.kwlistdoc:

包含为解释器定义的所有关键字的序列.如果任何关键字被定义为仅在特定__future__语句生效时才处于活动状态,那么这些关键字也将被包括在内.


Gre*_*ill 10

内置函数位于一个名为的模块中__builtins__,因此:

dir(__builtins__)
Run Code Online (Sandbox Code Playgroud)

  • 如果此代码在导入的模块中,我认为它会改为`__builtins__.keys()`。或者在 Python 3 中,`import builtins` 然后是 `dir(builtins)`,不管模块如何。https://docs.python.org/3/reference/executionmodel.html "默认情况下,在`__main__` 模块中时,`__builtins__` 是内置模块`builtins`;在任何其他模块中时,`__builtins__ ` 是`builtins` 模块本身的字典的别名。” (2认同)

C2H*_*5OH 5

我能想到的最接近的方法如下:

from keyword import kwlist
print kwlist
Run Code Online (Sandbox Code Playgroud)

标准关键字模块自动生成.有关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)
Run Code Online (Sandbox Code Playgroud)