在Python中,标识符是用于识别变量、函数、类、模块或其他对象的名称。良好的命名规范可以使代码更易读、易维护。下面详细介绍Python标识符的命名规则。
基本命名规则
Python标识符必须遵循以下基本规则:
- 标识符可以包含字母(a-z,A-Z)、数字(0-9)和下划线(_)
- 标识符不能以数字开头
- 标识符区分大小写(例如,
name和Name是不同的标识符)
- 标识符不能是Python关键字(如if, for, while等)
- 标识符不能包含空格或特殊字符(如@, $, %等)
- 标识符长度没有限制,但应保持合理
var = 10
_private_var = 20
my_variable = "Hello"
var2 = 3.14
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"))
print(keyword.iskeyword("my_var"))
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等),除非在非常有限的上下文中。