当前位置: 首页 > news >正文

Python 函数命名的具体示例

一、基础通用函数(最常用场景)

核心规则:全小写 + 下划线(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

五、绝对要避免的命名坑

  1. 使用关键字/保留字def def(): pass(报错)、def class(): pass(报错);
  2. 大小写混用(非类名)def CalculateListAverage(): pass(违反snake_case);
  3. 用中文/特殊字符def 计算平均值(): pass(虽能运行,但不符合规范)、def cal-avg(): pass(含减号,直接报错);
  4. 过度缩写def clc_avg(): pass(clc=calculate,缩写不直观)。

总结

  1. Python函数命名核心是snake_case(小写+下划线),私有函数加单下划线开头;
  2. 命名要体现“动作+对象”,做到见名知意,避免无意义字符/过度缩写;
  3. 业务函数结合场景命名,让代码可读性最大化,新手优先参考“基础通用函数”的命名范式。
http://www.jsqmd.com/news/268174/

相关文章:

  • XXL-Job分布式任务调度平台详解
  • 小程序计算机毕设之基于微信小程序的考研学习系统开发与实现基于springboot+微信小程序的考研复习辅助平台(完整前后端代码+说明文档+LW,调试定制等)
  • Chrome浏览器+Postman做接口测试
  • 网安人必备!开源网络安全工具TOP 10从零基础入门到精通,收藏这一篇就够了!
  • xstore 设置属性》
  • 哪个品牌的斑马鱼养殖设备质量好,耐用性强 - 品牌推荐大师1
  • 【网络安全】Tomcat CVE-2020-1938 漏洞复现和利用过程_漏洞复现
  • 2026年阻燃晴氯纶纱定做厂家权威推荐榜单:阻燃晴天丝纱/阻燃晴氯纶26支/阻燃晴棉纱/竹纤维纱/天竹纤维纱源头厂家精选
  • BEATOZ区块链专业企业与韩国头部旅游集团MODETOUR从签署MOU迈向网络验证节点合作
  • Python标识符命名规范
  • MinerU如何验证提取质量?评估指标与人工校验结合
  • 2026年权威仪器设备校准/仪器外校/仪器校检/教学仪器校准/实验室通用仪器校准厂家实力推荐榜:CNAS认可实验室服务,专业第三方校准机构精选
  • 提升识别准确率的小技巧,万物识别实战经验分享
  • 2026企业智能升级指南:从Deepseek知识库部署服务商到本地BI私有化方案商全解析 - 品牌2026
  • Vivado下载失败怎么办?网络与防火墙问题实战案例
  • 救命神器!专科生毕业论文TOP9 AI论文平台测评
  • 长治市襄垣平顺黎城壶关英语雅思培训辅导机构推荐,2026权威出国雅思课程中心学校口碑排行榜 - 苏木2025
  • 2026年中山二手名包回收公司推荐榜:超奢名品回收黄金手表包包奢侈品,二手包包回收/二手手表回收/二手名表回收/二手黄金回收/回收二手名包/二手金条回收/二手回收二手名表/二手奢侈品回收公司精选
  • Qwen2.5-0.5B育儿建议:儿童成长指导系统
  • 0.1加0.2为什么不等于0.3
  • 从布局分析到元素识别|基于PaddleOCR-VL的全流程技术拆解
  • NewBie-image-Exp0.1与Mochi Diffusion对比:长尾特征生成能力评测
  • 小程序毕设选题推荐:基于springboot+微信小程序的考研刷题平台考研复习辅助平台【附源码、mysql、文档、调试+代码讲解+全bao等】
  • 如何通过工业智造超级智能体实现汽车制造工厂数字化转型
  • Youtu-2B影视创作:剧本构思与对白生成
  • 从零开始:用Qwen2.5-0.5B-Instruct打造个人AI助手
  • 【必学收藏】DeepSeek Engram新突破:通过可扩展查找实现条件记忆,开启大模型稀疏化新方向
  • Fun-ASR-MLT-Nano-2512语音模型压缩:量化与剪枝实战
  • 【收藏必学】AI大模型入行攻略:避开弯路,掌握实用技能,轻松入行
  • 快速掌握Android init.rc配置,启动脚本轻松集成