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

python中常用的参数以及命名规范

以下是 Python 中常见的命名规范、参数用法及在大型项目中常用的操作模式,供记录参考:


1. 命名规范(Naming Conventions)

前缀/形式含义示例
_age单下划线:弱“私有”标记(可访问但不建议外部使用)self._age = 30
__age双下划线:名称改写(name mangling,类外访问需 _ClassName__ageself.__age = 30
__age__双前后下划线:系统保留(魔法方法/特殊属性)__init__, __str__
age普通变量/属性age = 30
ALL_CAPS常量MAX_RETRIES = 5
mixedCase驼峰式(少用,Pytho 不推荐,常见于 Java 风格)MixedCaseClass
snake_case下划线式(Python 推荐)compute_value()

2. 参数与调用约定(Function Signatures)

  • *args:可变位置参数,将额外的位置参数收集为元组。

    def func(x, *args):print(x, args)
    # 调用:func(1, 2, 3) -> x=1, args=(2, 3)
    
  • **kwargs:可变关键字参数,将额外的关键字参数收集为字典。

    def func(x, **kwargs):print(x, kwargs)
    # 调用:func(1, a=2, b=3) -> x=1, kwargs={'a':2, 'b':3}
    
  • 位置仅参数(Python 3.8+):在参数列表开头使用 / 指定,仅允许通过位置传递。

    def func(a, b, /, c, d):...
    # a、b 只能作为位置参数传入
    
  • 仅关键字参数:在 * 后的参数必须通过关键字传递。

    def func(a, *, b, c):...
    # b、c 必须以命名形式传入:func(1, b=2, c=3)
    

3. 装饰器(Decorators)

  • @decorator:语法糖,在定义函数/类时包装原对象。

    • 常见内置装饰器:

      • @staticmethod:定义无 self 参数的静态方法。

      • @classmethod:第一个参数为 cls 的类方法。

      • @property:将方法变为属性访问。

    class C:@staticmethoddef foo():...@classmethoddef bar(cls):...@propertydef name(self):return self._name
    
  • 自定义装饰器:接受函数/类作为输入并返回包装/增强对象。


4. 类型注解(Type Hints)

  • 参数注解:def func(x: str, y: int): ...

  • 返回值注解:def func(...) -> bool:

  • 常见用法:

    def greet(name: str) -> None:print(f"Hello, {name}")
    
  • typing 模块:List, Dict, Optional, Union, Any,以及自 Python 3.9 起可直接用内置集合类型如 list[int]


5. 魔法方法与协议(Special Methods & Protocols)

  • 常见魔法方法:

    • __init__, __repr__, __str__, __len__, __iter__, __enter__, __exit__ 等。

  • 可迭代协议:实现 __iter__ 或者 __getitem__

  • 上下文管理协议:实现 __enter__/__exit__ ,支持 with 语句。


6. 大型项目常用操作模式

  1. 日志记录(Logging)

    import logging
    logger = logging.getLogger(__name__)
    logger.setLevel(logging.INFO)
    
  2. 配置管理:使用 yaml / json 配置文件 + pydantic / dataclasses 加载。

  3. 单元测试pytest 框架,使用 fixtures、mock。

  4. 类型检查mypyflake8black 来保持代码质量与一致性。

  5. 依赖管理poetrypipenv

  6. 持续集成(CI):GitHub Actions / GitLab CI,自动执行测试与静态检查。

  7. 文档生成Sphinx + autodoc / mkdocs

  8. 数据库操作:ORM(如 SQLAlchemyDjango ORM)或直接使用 asyncpgpsycopg2 等。

  9. 异步编程asyncioaiohttpFastAPI

  10. 缓存redismemcached


以上内容涵盖了 Python 中常见的命名规范、参数约定、装饰器、类型注解、魔法方法以及在大型项目中经常会遇到的关键操作模式,适合记录归纳。如需更深入示例或扩展,可进一步补充。

http://www.xdnf.cn/news/6710.html

相关文章:

  • Python - 爬虫;Scrapy框架之items,Pipeline管道持久化存储(二)
  • 每周靶点:HE4、S100β及文献分享
  • 安装ruoyi-vue-pro后台管理系统并启动bpm工作流模块
  • SAP EWM外向交货单过账/SCWM/GM043 错误
  • 数据库故障排查指南:从入门到精通
  • MySQL联表查询:多表关联与嵌套查询指南
  • 【C++】 一文读懂 std::latch
  • XML介绍及常用c及c++库
  • Python 在Excel单元格中应用多种字体样式
  • 5月16日复盘-目标检测开端
  • Grafana分布统计:Heatmap面板
  • 关于 2025 年国产化 AI 算力盒子的报告
  • 一发入魂:极简解决 SwiftUI 复杂视图未能正确刷新的问题(中)
  • 响应式布局
  • bili.png
  • Vulfocus靶场-文件上传-3
  • threejs小案例——贴图翻转
  • Android App CAN通信测试
  • opencloudos 安装 mosquitto
  • 操作系统|| 虚拟内存页置换算法
  • 遥感图像露天矿区检测数据集VOC+YOLO格式1542张1类别
  • (for 循环) VS (LINQ) 性能比拼 ——c#
  • 【HTML5学习笔记1】html标签(上)
  • javascript和vue的不同
  • 机器学习数据预处理回归预测中标准化和归一化
  • React Flow 节点属性详解:类型、样式与自定义技巧
  • 从技术视角解构 Solana Meme 币生态
  • 校园一卡通安全策略研究调研报告
  • 【配置中心】配置中心该用Nacos还是Apollo
  • 【C++】类与对象