当前位置:首页>python>第 18 课 Python 标识符

第 18 课 Python 标识符

  • 2026-10-11 02:43:31
第 18 课 Python 标识符

标识符是一切变量、函数、类的命名基础,里面存在大量命名硬性规则、社区编码规范、下划线特殊含义,学习结束之后欢迎在评论区留下你的测试代码、疑问,大家一起交流学习!

一、课程前言

前面课程我们学习了各类数据类型、类型转换。编写代码的时候,我们需要给 变量、函数、类、列表、字典、模块 起名字,这些自定义名称就叫做 标识符。

简单举例:age = 18,等号左边的 age 就是标识符。

本节课区分 强制硬性语法规则 和 行业推荐编码规范,拆解下划线命名细节、关键字禁区、新手高频坑点。

二、基础概念详解

1. 标识符定义

标识符就是程序员为程序当中各类对象自定义的名称,用来区分不同的数据、方法、类、文件模块。

可以通俗理解成现实生活里每个人的姓名。

2. 强制硬性命名规则(违反直接代码报错)

①合法字符:只能够由 大小写英文字母、数字、英文下划线 _ 组成;Python3 理论支持中文当做标识符,但开发环境兼容性差,工作中禁止使用中文名称。

②首字符限制:开头只能是字母或者下划线,不可以用数字开头。

③大小写敏感:Name 和 name 属于两个完全独立的标识符。

④禁止使用关键字(保留字):关键字是Python系统自带、拥有特殊功能的单词,不能拿来当作变量名。

⑤标识符不可以包含空格、减号、@、#、$ 等特殊符号。

3. 合法、非法标识符对照

✅ 合法示例

user_namenum1_ageStudentInfoPI

❌ 非法示例

1num        # 数字开头user‑name   # 使用减号name age    # 含有空格@money      # 特殊符号class       # 系统关键字

4. 判断名称是否合法:isidentifier()

可以调用字符串内置方法,检测名字符串能不能作为标识符:

print("user_name".isidentifier())   # Trueprint("123abc".isidentifier())     # False

注意:"class".isidentifier() 返回True,语法格式合规,但它属于关键字,依旧禁止使用。

5. Python全部内置关键字

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

查看本机关键字代码:

import keywordprint(keyword.kwlist)

三、行业PEP‑8官方推荐命名规范(好习惯,不会报错,但是专业代码必须遵守)

规则决定代码能不能运行;命名规范决定代码好不好读。

1. 变量、函数、模块文件:蛇形命名法 snake_case

全部小写,多个单词之间用下划线隔开

user_ageget_user_infocalculate_total

2. 类名称:大驼峰命名法 PascalCase

每一个单词首字母大写,不需要下划线

StudentUserInfoGoodsManager

3. 常量名称:全大写+下划线

Python没有真正意义上不可修改的常量,依靠命名约定提醒开发者不要改动

PI = 3.14159MAX_STUDENT = 100

4. 私有属性、内部变量、魔法方法(下划线全套详解,本课重点特殊知识点)

下划线是Python标识符最特殊的设计,一共四类用法:

1. 单下划线开头 _name

约定代表内部变量,只推荐在当前模块、类内部使用;语法层面没有强制锁定,外部依旧可以访问,属于程序员之间的君子协议。

_user_id

2. 双下划线开头 __name

类内部的私有属性,Python会自动修改变量名字(名称改写),外部无法直接访问,用来保护内部数据。

3. 双下划线开头、双下划线结尾 __name__

系统魔法方法、内置特殊属性,是Python自带预留标识符,例如 __init__、__str__,自己写代码不要自定义这类名称,防止和系统内置功能冲突。

4. 单独一个下划线 _

- 用来接收不需要使用的临时变量

- 循环遍历忽略数值

# 不需要接收第一个返回值,使用下划线占位_, age = ("小李",18)

四、关键特殊知识点和新手易错坑点

坑点1:不要覆盖Python内置函数名

千万不要使用 list、str、print、input、tuple 当做变量名。

一旦覆盖,原生内置函数直接失效:

list = [1,2,3]# 后续 list() 强制转换功能直接报错# print(list((4,5)))
解决方案:修改名字为 num_list、str_text。

坑点2:区分关键字和内置函数

- 关键字:属于语法保留词,例如 if、for、class,完全不能当作名字

- 内置函数:print、str,语法允许当做变量名,但是会破坏系统功能,禁止使用

坑点3:大小写严格区分

Name = "张三"name = "李四"print(Name)print(name)# 两个独立变量互不干扰
坑点4:标识符禁止使用横线 -

减号在Python里面代表减法运算,user‑name 程序会识别成 user 减去 name,直接报错,多单词只能用下划线分隔。

坑点5:见名知意原则

拒绝 a、b、c、x 这种模糊名称;

推荐 student_score、user_name,一眼看懂变量存储的数据。

尽量不要使用拼音命名。

五、课后练习题(共3题)

习题1(基础题)

判断下面哪些属于合法标识符:

num_1、1_num、user‑name、_data、class

习题2(易错题)

写出代码运行报错的原因:

str = "测试文本"num = str(123)print(num)
习题3(综合实操)

按照规范定义:

1. 蛇形命名的变量存储学生身高

2. 大驼峰格式创建一个类名

3. 全大写方式定义圆周率常量

标识符最容易踩坑的地方就是下划线含义、覆盖内置函数、关键字误用。如果你有代码报错或是知识点存在疑惑,可以在评论区留言,一起解决问题!

最新文章

随机文章