源本科技 | 码上会

Python 关键字

2026/01/16
6
0

学习目标

  • 了解 Python 关键字的定义与作用

  • 掌握查看和识别关键字的方法

  • 熟悉各类关键字的功能分类及其使用场景

  • 区分关键字、标识符与变量的本质差异

  • 避免在编程中误用关键字导致语法错误


什么是关键字

关键字(Keywords) 是 Python 语言中预定义的保留字,具有特殊语法含义,用于构建程序的基本结构。它们是语言的核心组成部分,不能用作变量名、函数名、类名或其他用户自定义标识符

例如,iffordef 等都是关键字,用于控制流程、定义函数等。


获取所有关键字

Python 提供了内置模块 keyword,可轻松列出当前版本支持的所有关键字:

import keyword
print("Python 关键字列表:")
print(keyword.kwlist)

输出(截至 Python 3.12):

['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']

35 个关键字(具体数量可能随 Python 版本略有变化)。


如何识别关键字

1. 通过 IDE 语法高亮

主流编辑器(如 VS Code、PyCharm)会将关键字以特殊颜色或加粗样式显示,便于快速识别。

2. 通过语法错误提示

若尝试将关键字用作变量名,Python 会抛出 SyntaxError

for = 10  # 错误!'for' 是关键字
print(for)

错误信息:

SyntaxError: invalid syntax

注意:此类错误通常在代码解析阶段就发生,甚至无法运行到报错行。


关键字分类

为便于理解,可将关键字按功能分为以下几类:

值关键字

表示特殊常量值:

关键字

说明

True

布尔真值

False

布尔假值

None

表示“无”或空值,是 NoneType 类型的唯一实例

x = True
y = None
print(type(y))  # <class 'NoneType'>

运算符关键字

用于逻辑、比较或成员判断:

关键字

功能

and

逻辑与

or

逻辑或

not

逻辑非

is

身份比较(是否同一对象)

in

成员测试(是否在序列中)

if x is not None and y in [1, 2, 3]:
    print("条件满足")

控制流关键字

控制程序执行顺序:

关键字

用途

if, elif, else

条件分支

for, while

循环结构

break, continue

循环控制

pass

空语句占位符

try, except, finally

异常处理

raise

主动抛出异常

assert

断言调试

for i in range(5):
    if i == 3:
        break
    print(i)

函数与类定义关键字

关键字

说明

def

定义函数

return

返回函数结果

lambda

创建匿名函数

yield

生成器函数返回值

class

定义类

def greet(name):
    return f"Hello, {name}!"

square = lambda x: x ** 2

上下文管理关键字

关键字

用途

with

管理资源(如文件、锁),确保自动清理

as

为导入模块或上下文对象起别名

with open("file.txt", "r") as f:
    content = f.read()
# 文件自动关闭

模块与导入关键字

关键字

说明

import

导入模块

from

从模块中导入特定成员

import math
from datetime import datetime

作用域与命名空间

关键字

作用

global

声明全局变量

nonlocal

声明嵌套函数中的外层变量

x = 10
def func():
    global x
    x = 20  # 修改全局变量

异步编程关键字

关键字

说明

async

定义异步函数

await

等待异步操作完成

async def fetch_data():
    await asyncio.sleep(1)
    return "Data"

关键字/标识符/变量

特性

关键字

标识符

变量

定义

语言预定义保留字

用户定义的名称(含变量、函数等)

用于存储数据的标识符

可否重定义

❌ 不可

✅ 可自定义(但不能是关键字)

✅ 可创建、修改、删除

示例

if, for, def

count, calculate_sum

age = 25 中的 age

用途

构建语法结构

命名程序元素

保存和操作数据

命名规则限制

固定不变

需符合命名规则且不与关键字冲突

同标识符

关键区别

  • 所有变量名都是标识符,但并非所有标识符都是变量(也可能是函数名、类名等)。

  • 关键字永远不能作为标识符使用。


常见误区

错误示例

# 试图用关键字命名变量
class = "Math"      # SyntaxError
def = 5             # SyntaxError
lambda = "func"     # SyntaxError

正确做法

  • 使用描述性名称,如 student_classfunction_def

  • 若不确定某词是否为关键字,可用 keyword.iskeyword() 检查:

import keyword
print(keyword.iskeyword("for"))    # True
print(keyword.iskeyword("count"))  # False

重点总结

  • Python 关键字是语言内置的保留字,共 35 个(截至 3.12)。

  • 关键字具有固定语法含义,不可用作变量名或函数名

  • 可通过 keyword.kwlist 查看完整列表,通过 keyword.iskeyword() 判断是否为关键字。

  • 关键字按功能可分为:值、运算符、控制流、函数 / 类、上下文管理、导入、作用域、异步等类别。

  • 良好的命名习惯应避开关键字,并使用清晰、有意义的标识符。


思考题

  1. 为什么 TrueFalseNone 被归类为关键字,而不是普通内置常量?

  2. 尝试运行 print(keyword.iskeyword("async"))print(keyword.iskeyword("Async")),结果有何不同?这说明了什么?

  3. 在团队协作中,如何避免因误用关键字而导致的代码合并冲突或运行时错误?