标识符的命名规则 - 详细说明

在Python中,标识符是用于识别变量、函数、类、模块或其他对象的名称。良好的命名规范可以使代码更易读、易维护。下面详细介绍Python标识符的命名规则。

基本命名规则

Python标识符必须遵循以下基本规则:

  • 标识符可以包含字母(a-z,A-Z)、数字(0-9)和下划线(_)
  • 标识符不能以数字开头
  • 标识符区分大小写(例如,nameName是不同的标识符)
  • 标识符不能是Python关键字(如if, for, while等)
  • 标识符不能包含空格或特殊字符(如@, $, %等)
  • 标识符长度没有限制,但应保持合理
# 合法的标识符示例
var = 10
_private_var = 20
my_variable = "Hello"
var2 = 3.14

# 不合法的标识符示例
# 2var = 10 # 不能以数字开头
# my-var = 20 # 不能包含连字符
# class = "Math" # 不能使用关键字
# my var = 30 # 不能包含空格

Python关键字

Python有一组保留字,称为关键字,这些关键字不能用作标识符名称。Python 3.x中的关键字包括:

关键字 关键字 关键字 关键字
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 keyword

print(keyword.iskeyword("if")) # 输出: True
print(keyword.iskeyword("my_var")) # 输出: False
print(keyword.kwlist) # 输出所有关键字列表

命名约定

除了基本规则外,Python社区遵循一些命名约定(PEP 8规范):

标识符类型 命名约定 示例
变量名 使用小写字母,单词间用下划线分隔(snake_case) student_name, total_score
函数名 使用小写字母,单词间用下划线分隔(snake_case) calculate_average, get_user_input
类名 使用驼峰命名法(CamelCase),首字母大写 StudentClass, CarFactory
常量名 使用全大写字母,单词间用下划线分隔 MAX_VALUE, PI, DEFAULT_TIMEOUT
模块名 使用简短的小写字母名称,必要时使用下划线 math, os, my_module
包名 使用简短的小写字母名称,避免使用下划线 numpy, pandas, requests
# 变量命名示例
student_name = "张三"
student_age = 20
total_score = 95.5

# 函数命名示例
def calculate_average(scores):
    return sum(scores) / len(scores)

# 类命名示例
class StudentClass:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# 常量命名示例
MAX_STUDENTS = 50
DEFAULT_TIMEOUT = 30

特殊命名约定

Python还有一些特殊的命名约定:

  • 单下划线开头(_variable):表示"内部使用"的变量,是一种弱"内部使用"指示器
  • 单下划线(_):通常用作临时或无意义变量名
  • 双下划线开头(__variable):表示名称修饰(name mangling),用于避免子类中的命名冲突
  • 双下划线开头和结尾(__init__):特殊方法名,由Python定义
# 单下划线开头的变量(内部使用)
_internal_var = "仅供内部使用"

# 单下划线(临时变量)
for _ in range(5):
    print("Hello")

# 双下划线开头(名称修饰)
class MyClass:
    def __init__(self):
        self.__private_var = 42

# 双下划线开头和结尾(特殊方法)
class Student:
    def __init__(self, name):
        self.name = name
    
    def __str__(self):
        return f"Student: {self.name}"
注意: 虽然Python允许使用Unicode字符作为标识符(如中文变量名),但在实际开发中,建议使用英文字母,以提高代码的可读性和可维护性。
提示: 良好的命名习惯是编写高质量代码的关键。选择有意义的名称,避免使用过于简短或模糊的名称(如a, b, x等),除非在非常有限的上下文中。
← 返回知识点列表