在学习 Python 编程语言的过程中,标识符(Identifier) 和 保留字(Keywords) 是两个非常基础但又极其重要的概念。它们是编写程序时必须遵守的语言规则之一。
本文将带你深入了解:
掌握好这些内容,不仅能帮助你写出更规范、可读性更强的代码,还能避免因使用关键字作为变量名而导致的语法错误。
标识符 是程序员为变量、函数、类、模块等命名所使用的符号名称。
Python 中的标识符可以是一个字母、下划线或汉字(不推荐)开头,后跟任意数量的字母、数字、下划线组成。
name
user_age
_total
my_function
MyClass
标识符 | 错误原因 |
---|---|
2nd_place |
以数字开头 |
class |
使用了保留字 |
first-name |
包含非法字符 - |
hello world |
包含空格 |
Python 对标识符有明确的语法规则,违反以下规则会导致编译错误:
_
age
和 Age
是不同的标识符虽然不是强制要求,但遵循良好的命名规范有助于提高代码的可读性和团队协作效率。
类型 | 推荐风格 | 示例 |
---|---|---|
变量名、函数名 | 小写字母 + 下划线 | user_name , get_data() |
类名 | 大驼峰(PascalCase) | Student , DataProcessor |
常量名 | 全大写 + 下划线 | MAX_SIZE , DEFAULT_TIMEOUT |
私有属性/方法 | 单下划线开头 | _internal_value , _helper_method() |
注意:单下划线开头表示“受保护”的含义,双下划线开头表示“私有”(会被名称重整)。
保留字(Keywords) 是 Python 解释器预定义的一组具有特殊意义的单词,不能用作标识符。
它们构成了 Python 语言的基本语法结构,如控制流程、数据类型、函数定义等。
import keyword
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'
]
目前 Python 3.12 有 35 个保留字。
分类 | 关键字 | 用途说明 |
---|---|---|
控制结构 | if , elif , else , for , while , break , continue |
条件判断、循环控制 |
函数定义 | def , return , lambda , yield |
定义函数、返回值、匿名函数、生成器 |
异常处理 | try , except , finally , raise , assert |
捕获异常、抛出异常、断言条件 |
类与对象 | class , self , super |
定义类、实例方法、调用父类 |
导入模块 | import , from , as |
导入外部模块或库 |
数据类型 | True , False , None |
布尔值、空值 |
逻辑运算 | and , or , not |
布尔逻辑运算 |
特殊功能 | global , nonlocal , del , pass , with |
变量作用域控制、删除对象、占位符、上下文管理 |
错误类型 | 示例 | 原因 | 解决方案 |
---|---|---|---|
使用保留字命名变量 | class = "Math" |
class 是保留字 |
更换变量名为 course_class |
使用非法字符 | my-var = 10 |
- 不允许出现在标识符中 |
改为 my_var |
标识符以数字开头 | 1st_place = True |
违反命名规则 | 改为 first_place |
忽略大小写差异 | Name vs name |
被视为不同变量 | 保持命名一致性 |
使用中文命名 | 姓名 = "张三" |
虽然合法但不推荐 | 推荐使用英文命名 |
场景 | 建议 |
---|---|
变量命名 | 见名知意,如 user_count , total_price |
函数命名 | 动词开头,如 calculate_tax() , save_to_file() |
类命名 | 名词,如 User , InvoiceItem |
常量命名 | 全大写,如 MAX_RETRY = 3 |
模块命名 | 简洁、小写,如 utils.py , config.py |
包命名 | 同模块,避免使用复数或缩写 |
类别 | 数量 | 是否能修改 | 示例 |
---|---|---|---|
标识符 | 无限 | ✅ 可自由定义(需符合规则) | username , calculate_sum() |
保留字 | 35(Python 3.12) | ❌ 不可作为变量名 | if , for , class |
感谢您的阅读!如果你有任何疑问或想要分享的经验,请在评论区留言交流!