恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

HoRain云--Python代码质量与重构:Ruff、mypy与设计原则

  • 首页
  • 资讯中心
  • /
  • HoRain云--Python代码质量与重构:Ruff、mypy与设计原则

相关资讯

多传感器融合标定技术:原理、挑战与演进趋势 2026/10/14 3:27:56
【AI大模型】预热机制:降低首字延迟的实用优化方法 2026/10/14 3:27:56
昇腾910架构解析:有效算力密度与AI工程化落地关键 2026/10/14 3:27:56

最新资讯

Windows下FLEX+BISON+VS Code编译原理开发环境搭建指南
PS5串流全攻略:让主机画面出现在家里任何屏幕
RocketMQ RPC通信源码解析:协议设计、粘包处理与线程模型
确定信号与随机信号:通信系统建模的双基石
AnyPS5合法折腾指南:把游戏主机变成客厅娱乐中枢
systemd与systemctl核心操作:RH124第9章服务控制实战详解

今日推荐

IBM Verify Identity Access 修复 22 个漏洞:两个 9.8 严重 RCE 无需认证
小区物业管理系统
小型超市仓库管理系统

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

HoRain云--Python代码质量与重构:Ruff、mypy与设计原则

发布时间:2026/10/14 3:27:56
HoRain云--Python代码质量与重构:Ruff、mypy与设计原则 代码质量决定项目寿命。本文讲解Python代码检查工具Ruff、mypy、black和重构技巧帮助你写出可维护的代码。一、Ruff极速LinterRuff用Rust编写比flake8快10-100倍集成多个工具。bash复制下载pip install ruff ruff check . ruff check --fix . ruff format .pyproject.tomltoml复制下载[tool.ruff] line-length 100 target-version py311 [tool.ruff.lint] select [E, F, W, I, N, UP, B, C4, SIM] ignore [E501] [tool.ruff.lint.isort] known-first-party [myapp]二、Black与isortbash复制下载pip install black isort black . isort .现在Ruff已能替代两者。三、mypy类型检查bash复制下载pip install mypy mypy app/python复制下载def greet(name: str) - str: return fHello, {name} greet(123) # mypy报错mypy.iniini复制下载[mypy] python_version 3.11 warn_return_any True warn_unused_configs True disallow_untyped_defs True ignore_missing_imports True四、常见代码坏味道4.1 过长函数python复制下载# 坏 def process_order(order): # 校验 if not order.items: raise ValueError() # 计算 total sum(i.price * i.qty for i in order.items) # 折扣 if order.coupon: total * 0.9 # 保存 db.save(order) # 通知 send_email(order.user) return total # 好 def validate_order(order): ... def calculate_total(order): ... def apply_coupon(order, total): ... def save_order(order): ... def notify_user(order): ... def process_order(order): validate_order(order) total calculate_total(order) total apply_coupon(order, total) save_order(order) notify_user(order) return total4.2 重复代码提取公共函数或使用继承/组合。4.3 魔法数字python复制下载# 坏 if user.age 18: ... # 好 ADULT_AGE 18 if user.age ADULT_AGE: ...4.4 过深嵌套python复制下载# 坏 def process(data): if data: if data.valid: if data.items: for item in data.items: if item.active: handle(item) # 好卫语句 def process(data): if not data or not data.valid or not data.items: return for item in data.items: if item.active: handle(item)五、SOLID原则S单一职责O开闭原则L里氏替换I接口隔离D依赖倒置python复制下载# 依赖倒置 class Notifier(Protocol): def send(self, msg: str) - None: ... class EmailNotifier: def send(self, msg: str) - None: ... class OrderService: def __init__(self, notifier: Notifier): self.notifier notifier六、重构技巧6.1 提取变量python复制下载# 坏 if user.age 18 and user.city Beijing and user.active: ... # 好 is_adult user.age 18 is_beijing user.city Beijing if is_adult and is_beijing and user.active: ...6.2 用多态替代条件python复制下载# 坏 def area(shape): if shape.type circle: return 3.14 * shape.r ** 2 elif shape.type rect: return shape.w * shape.h # 好 class Circle: def area(self): return 3.14 * self.r ** 2 class Rect: def area(self): return self.w * self.h6.3 用dataclass替代样板类python复制下载from dataclasses import dataclass dataclass class User: id: int name: str age: int 0七、CI集成yaml复制下载name: Quality on: [push] jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - uses: actions/setup-pythonv4 with: python-version: 3.11 - run: pip install ruff mypy pytest - run: ruff check . - run: mypy app/ - run: pytest八、pre-commit钩子yaml复制下载# .pre-commit-config.yaml repos: - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.0 hooks: - id: ruff args: [--fix] - id: ruff-format - repo: https://github.com/pre-commit/mirrors-mypy rev: v1.5.0 hooks: - id: mypybash复制下载pip install pre-commit pre-commit install九、总结代码质量是长期投资。用Ruff统一风格mypy保证类型安全遵循SOLID原则持续重构才能让项目保持活力。工具自动化检查让团队专注于业务逻辑。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号