一、基础通用函数(最常用场景)
核心规则:全小写 + 下划线(snake_case) + 见名知意,名称要直接体现函数的“动作+对象”。
| 函数用途 | 错误命名(反面示例) | 正确命名(正面示例) | 代码示例 |
|---|---|---|---|
| 计算列表平均值 | avg(lst)、f1(l) |
calculate_list_average() |
```python |
| def calculate_list_average(num_list): |
"""计算数字列表的平均值"""
if not num_list:return 0
return sum(num_list) / len(num_list)
| 验证手机号格式 | `checkphone(p)`、`v(p)` | `validate_phone_number()` | ```python
def validate_phone_number(phone):"""验证手机号是否符合11位数字格式"""return len(phone) == 11 and phone.isdigit()
``` |
| 读取文本文件 | `readfile(f)`、`rf(path)` | `read_text_file()` | ```python
def read_text_file(file_path, encoding="utf-8"):"""读取文本文件内容并返回字符串"""with open(file_path, "r", encoding=encoding) as f:return f.read()
``` |
| 生成随机验证码 | `create_code(n)`、`gc()` | `generate_verify_code()` | ```python
import random
import stringdef generate_verify_code(length=6):"""生成指定长度的数字+字母随机验证码"""chars = string.digits + string.ascii_lettersreturn "".join(random.choice(chars) for _ in range(length))
``` |### 二、业务场景函数(贴近实际开发)
命名要结合业务逻辑,让非技术人员也能快速理解函数用途,避免抽象化。```python
# 学生管理系统相关函数
def get_student_info_by_id(student_id):"""根据学生ID查询学生信息"""# 模拟数据库查询逻辑students = {"001": {"name": "张三", "age": 20}, "002": {"name": "李四", "age": 19}}return students.get(student_id, None)def update_student_score(student_id, subject, new_score):"""更新指定学生的某科目成绩"""# 模拟更新逻辑print(f"更新学生{student_id}的{subject}成绩为{new_score}")return True# 电商订单相关函数
def calculate_order_total_price(order_items):"""计算订单商品总价(含单价*数量)"""total = 0for item in order_items:total += item["price"] * item["quantity"]return totaldef cancel_order_by_order_id(order_id, reason="用户主动取消"):"""根据订单ID取消订单,并记录取消原因"""print(f"订单{order_id}已取消,原因:{reason}")return True
三、私有函数(仅内部使用)
核心规则:单下划线开头 + 蛇形命名,提示外部代码不要直接调用。
# 工具类示例:私有函数用于内部辅助逻辑
class FileHandler:def __init__(self, file_path):self.file_path = file_path# 私有函数:清理文件中的空行(仅内部调用)def _remove_blank_lines(self, content):"""【内部函数】清理文本内容中的空行"""lines = [line.strip() for line in content.split("\n") if line.strip()]return "\n".join(lines)# 公开函数:读取并格式化文件内容def read_and_format_file(self):"""读取文件并清理空行后返回"""content = self.read_text_file(self.file_path)return self._remove_blank_lines(content)# 复用之前的基础函数(作为类方法)def read_text_file(self, file_path, encoding="utf-8"):with open(file_path, "r", encoding=encoding) as f:return f.read()
四、特殊场景:简短但清晰的函数名
如果函数逻辑极简单、上下文明确,可适当简化命名(但仍要避免无意义字符):
# 场景:简单的数值处理(上下文明确时)
def add(a, b):"""两数相加(简单逻辑可简化命名)"""return a + bdef is_empty(obj):"""判断对象是否为空(如列表、字符串)"""return not obj# ❌ 反面示例:即使简单也不能用无意义命名
def f(a, b): # 无法判断是相加/相减/相乘return a + b
五、绝对要避免的命名坑
- 使用关键字/保留字:
def def(): pass(报错)、def class(): pass(报错); - 大小写混用(非类名):
def CalculateListAverage(): pass(违反snake_case); - 用中文/特殊字符:
def 计算平均值(): pass(虽能运行,但不符合规范)、def cal-avg(): pass(含减号,直接报错); - 过度缩写:
def clc_avg(): pass(clc=calculate,缩写不直观)。
总结
- Python函数命名核心是snake_case(小写+下划线),私有函数加单下划线开头;
- 命名要体现“动作+对象”,做到见名知意,避免无意义字符/过度缩写;
- 业务函数结合场景命名,让代码可读性最大化,新手优先参考“基础通用函数”的命名范式。