怎么在Python中查看当前版本的保留字列表

蓝鲸
蓝鲸
发布时间:2026-10-24| 8人浏览过
原创

在Python中,查看当前解释器版本拥有的保留字(关键字),最直接、标准的方式是导入内置的 keyword 模块并读取 keyword.kwlist。只需在终端或交互式环境运行 import keyword; print(keyword.kwlist),解释器就会完整列出当前运行环境下所有受保护的硬保留字。本文将从具体操作步骤、软关键字扩展、动态判断接口以及版本差异演进四个方面展开详细介绍。

一、操作步骤:获取当前环境的保留字列表

Python将语法保留字保存在标准库的 keyword 模块中。无论你在本地安装了Python 3.8、3.10还是更新的版本,这个模块都会根据当前解释器的编译规则动态生成精确的保留字列表。

1. 交互式命令行(REPL)中查看

打开系统终端(Terminal、PowerShell或命令提示符),输入 python 或 python3 启动交互式环境,然后依次执行以下两条语句:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', '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) 快速查看当前版本硬保留字的总数(例如在Python 3.10至3.12中通常为35个)。

2. 终端单行命令快速输出

如果你不需要进入交互模式,只是想在终端里快速确认一次,可以使用 -c 参数直接执行Python代码:

python -c "import keyword; print(', '.join(keyword.kwlist))"

这会直接在终端标准输出中打印以逗号隔开的关键字字符串,便于快速查阅或通过管道传递给其他脚本。

怎么在Python中查看当前版本的保留字列表
图 1:从环境确认到保留字提取与校验的完整操作步骤

二、进阶认知:区分“硬关键字”与“软关键字”

自 Python 3.10 开始,Python 的关键字体系引入了分类。在 3.10 之前的版本中,只有单一维度的关键字;而新版本中将关键字分成了两类:硬关键字(Hard Keywords)与软关键字(Soft Keywords)。

  • 硬关键字(kwlist):绝对保留。无论在代码的任何位置,都绝对禁止用作普通标识符(如变量名、函数名、类名)。尝试赋值 def = 1 会直接触发 SyntaxError: invalid syntax。
  • 软关键字(softkwlist):条件保留。仅在特定的语法结构(例如模式匹配 match 和 case 语句)中充当关键字。在日常代码的其他位置,你依然可以合法地定义名为 match = 100 或 case = "test" 的变量,而不会产生语法报错。

在 Python 3.10 及更高版本中,你可以通过以下方式查看当前环境的软关键字:

>>> import keyword
>>> keyword.softkwlist
['match', 'case', '_']
怎么在Python中查看当前版本的保留字列表
图 2:Python 关键字体系分类(硬关键字与软关键字)

三、代码检测:在程序中判断字符串是否为保留字

除了人工肉眼查看列表,开发元编程、代码解析器或动态属性校验时,更推荐直接调用 keyword 模块提供的布尔判定函数,而不是自己写 s in kwlist:

1. 检测硬关键字:iskeyword

import keyword

print(keyword.iskeyword("return"))  # 输出: True
print(keyword.iskeyword("name"))    # 输出: False
print(keyword.iskeyword("match"))   # 输出: False (在3.10+中match属于soft keyword,不是硬关键字)

2. 检测软关键字:issoftkeyword(Python 3.9+)

在 Python 3.9 及更高版本中,模块增加了 issoftkeyword() 函数,用于专门检测传入的标识符是否被注册为软关键字:

import keyword

print(keyword.issoftkeyword("match"))  # 输出: True
print(keyword.issoftkeyword("return")) # 输出: False
提示: 如果编写的代码需要兼容低版本 Python(如 Python 3.8 及以下),请注意 keyword.softkwlist 和 keyword.issoftkeyword 并不存在。若在低版本中直接调用会抛出 AttributeError,建议使用 hasattr(keyword, "issoftkeyword") 进行安全检测。

四、替代方案:利用内置 help("keywords") 交互查询

在没有代码编写需求的场景下,Python 内置的 help() 帮助系统同样提供了按字母列出的关键字索引。进入终端交互模式并输入:

>>> help("keywords")

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

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

这种方法的优点是输出以多列格式规整呈现,适合人工阅读,并且输入 help("def") 还能进一步查看该关键字的官方语法文档。

五、为什么必须检查“当前版本”:历史演进与避坑分析

很多初学者会疑惑:“网上查一份 Python 关键字列表不就可以了吗,为什么必须在本地当前版本查看?”答案在于 Python 的保留字列表并不是固定不变的。随着版本升级,语法会有新增,也会有旧关键字被移除或调整。

怎么在Python中查看当前版本的保留字列表
图 3:Python 核心版本保留字历史演进对比

以下两个经典案例最能说明版本检查的重要性:

  1. async 与 await 的演变: 在 Python 3.5 中引入异步语法时,为了兼容老代码中大量把 async 用作变量名或函数参数(如网络请求库 requests.get(..., async=True))的项目,它们最初只是临时语法记号。直到 Python 3.7,它们才正式晋升为硬保留字。如果在 Python 3.7+ 环境运行包含 async = True 的旧代码,程序就会立刻崩溃并提示语法错误。
  2. print 与 exec 的变迁: 在 Python 2 中,print 是保留字语句(语法为 print "hello"),但在 Python 3 中被重构为内置函数。这意味着在 Python 3 中 print 不在 keyword.kwlist 中,技术上你甚至可以覆盖赋值它(虽然极不推荐这样做)。

六、常用查询与检测方法总结

为了在实际开发中更加从容,下表汇总了在不同场景下查看与运用当前版本保留字的最佳方式:

怎么在Python中查看当前版本的保留字列表
图 4:Python 保留字查询与判定方法汇总

总结来说,要在Python中准确查看当前版本的保留字列表,首选始终是标准库内置的 keyword.kwlist;当在 Python 3.10 及以上环境使用模式匹配时,结合 keyword.softkwlist 辅助确认。通过在当前真实运行环境中查询,能够百分之百消除跨解释器版本带来的兼容性疑虑。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。