HOWTO · Python

Python 中函数、类、常量和变量的命名约定

了解 Python 函数、类、常量和变量的命名约定,并附有基于 PEP 8 的清晰示例。

本页内容

Python 命名约定有助于提高代码的可读性和可维护性。PEP 8 是 Python 的风格指南,其中的约定是建议,并非由语言强制执行的规则。可以先以这些约定为统一起点;如果项目已有不同的风格,则应遵循项目约定。有关依据,请参阅 PEP 8 命名约定。

函数的命名约定

函数名使用小写单词,并以下划线分隔。这种风格称为 snake_case(蛇形命名法);例如,calculate_area 能说明函数要执行的操作,也便于快速阅读。选择能让读者明白函数用途的名称。

例如,下面的函数会计算并显示矩形的面积:

def calculate_area(length, width):
    return length * width

area = calculate_area(5, 3)
print(area)

输出:

15

函数名使用动词,参数则说明它接受哪些值。调用时传入长度 5 和宽度 3,因此返回的面积是 15。

Python 标识符区分大小写,所以 calculate_area 和 Calculate_Area 是不同的名称。名称可以包含字母、数字和下划线,但不能以数字开头。名称应清晰易读,不必重复编码函数体或上下文已经说明的信息。名称前加一个下划线(例如 _parse_record),表示它用于内部使用;这不会让名称变得无法访问或成为私有名称。如果项目有不同约定,请遵循项目风格。

类的命名约定

类名使用 CapWords:每个单词的首字母大写,单词之间不加下划线。这种风格也常称为 PascalCase。它能让读者将 Car 这样的类名与函数名或变量名区分开来。

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model

my_car = Car("Toyota", "Corolla")
print(my_car.make, my_car.model)

输出:

Toyota Corolla

这里,Car 是类名,而 my_car 遵循变量使用的小写单词加下划线风格。初始化方法会将传入的品牌和型号存储到新对象中。

常量的命名约定

常量通常在模块级别定义,名称使用大写单词并以下划线分隔。例如,MAX_RETRIES 表示该值按约定应保持稳定。大写只是命名约定:在 Python 中,名称全大写并不会让值不可变,因此应通过团队约定和实际做法避免重新赋值。

PI = 3.14159

def calculate_circle_area(radius):
    return PI * (radius ** 2)

area = calculate_circle_area(5)
print(area)

输出:

78.53975

常量名称表明了它预期的用途,函数则使用该常量计算圆的面积。

变量的命名约定

变量名和函数名一样,使用小写单词并以下划线分隔。与含义模糊的 x 相比,应优先使用 user_age 这样的描述性名称;名称需要多具体,取决于周围代码提供了多少上下文。

user_age = 30
def display_age(age):
    print(f"The user is {age} years old.")

display_age(user_age)

输出:

The user is 30 years old.

user_age 描述了所存储的值;在这个简短函数中,age 作为参数名也足够清楚。统一的命名有助于读者理解值在程序中的流转方式。Python 不会强制执行这些命名风格,因此应一致地采用这些约定,并根据项目风格进行调整。