当前位置:

首页 > 编程开发 > 一个简单的步骤让你的 Python 代码更干净

一个简单的步骤让你的 Python 代码更干净

说起来容易做起来难,我们都知道代码可读性非常重要,但是写的时候总是随心所欲,不考虑类型提示、import排序、PEP8规范。今天分享一个小技巧,通过一个简单的步骤就可以让你的Python代码更干净。这就是pre-commit:可以让你的代码提交之前自动检查是否符合你想要的规范。使用之前,先pip安装一下:pipinstallpre-commit然后在项目的根目录下创建两个文件:.pre-commit-config.yaml和pyproject.toml。.pre-commit-con

本文目录

    说起来容易做起来难,我们都知道代码可读性非常重要,但是写的时候总是随心所欲,不考虑类型提示、import 排序、PEP8 规范。今天分享一个小技巧,通过一个简单的步骤就可以让你的 Python 代码更干净。

    这就是 pre-commit:

    一个简单的步骤让你的 Python 代码更干净

    可以让你的代码提交之前自动检查是否符合你想要的规范。

    使用之前,先 pip 安装一下:

    pip install pre-commit

    然后在项目的根目录下创建两个文件:.pre-commit-config.yaml 和 pyproject.toml。

    .pre-commit-config.yaml 文件内容如下:

    exclude: _pb2.py$
    repos:
    - repo: https://github.com/psf/black
    rev: 22.3.0
    hooks:
    - id: black
    args: [--skip-string-normalization]
    - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.0.1
    hooks:
    - id: check-docstring-first
    - id: check-json
    - id: check-merge-conflict
    - id: check-yaml
    - id: debug-statements
    - id: end-of-file-fixer
    - id: trailing-whitespace
    - id: requirements-txt-fixer
    - repo: https://github.com/pre-commit/pygrep-hooks
    rev: v1.9.0
    hooks:
    - id: python-check-mock-methods
    - id: python-use-type-annotations
    - repo: https://github.com/pre-commit/mirrors-mypy
    rev: "v0.910"
    hooks:
    - id: mypy
    args:
    [
    --ignore-missing-imports,
    --warn-no-return,
    --warn-redundant-casts,
    --disallow-incomplete-defs,
    ]
    additional_dependencies: [types-all]
    - repo: https://github.com/PyCQA/isort
    rev: 5.9.3
    hooks:
    - id: isort
    args: [--profile, black, --filter-files]

    这里面配置了 black、mypy、check-docstring-first、isort 等工具,id 就是对应的工具,可以说这个配置文件基本上就够用了。

    在 .pre-commit-config.yaml 文件中,我们可以指定将使用哪些挂钩,在 pyproject.toml 中,我们可以为这些单独的钩子指定参数。

    pyproject.toml 文件内容如下:

    [tool.black]
    line-length = 88
    target-version = ["py38"]
    
    [tool.isort]
    profile = "black"
    multi_line_output = 3

    这里配置了 black 和 isort 的相关配置。

    然后执行在项目的根目录执行 pre-commit install 命令,就可以安装 pre-commit 插件。

    然后每次更新代码,提交代码时,这些钩子都会触发,会自动执行如下操作:

    排序 import

    PEP8 的格式代码

    检查您的 yaml 和 json 文件的正确性

    类型检查(如果你使用了类型提示)

    一个简单的步骤让你的 Python 代码更干净

    最后

    你可以将这两个文件拷贝到自己的项目根目录中,然后执行一次 pre-commit install,这样每次提交代码的时候,都是干净的代码,是不是很方便?

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发
    相关文章 更多
    文本 Unicode 码加密与解密 代码
    文本 Unicode 码加密与解密 代码

    文本 Unicode 码加密与解密:一个简单实用的工具 今天我们来聊聊一种有趣的文本加密方式——Unicode码加密与解密。这个工具利用Unescape脚本的转换机制,能够将普通文本转换成看似乱码的Unicode编码,实现信息的隐藏与保护。 主要用途 这个工具的应用场景其实相当广泛: 加密中文信函,

    JScript.Encode 脚本在线解密 代码
    JScript.Encode 脚本在线解密 代码

    JScript.Encode脚本在线解密工具,提供完整HTML页面代码,可对编码脚本进行快速解密。页面直接运行,无需额外配置,支持一键解密,操作简便,适用于前端开发者调试与还原加密脚本。

    雷科技到底是谁?!!!悟空给出的答案,太抓人了!
    雷科技到底是谁?!!!悟空给出的答案,太抓人了!

    从零到一:用AI生成一份专业的媒体影响力报告 但凡在内容或运营团队待过的人,大概都对制作《媒体影响力报告》这类活儿记忆犹新。那过程,堪称一场跨部门接力赛:运营同事得先从各个平台后台手动扒拉数据,计算阅读量、粉丝增长和互动率;拿到一堆冰冷数字后,还得拉着账号负责人反复琢磨定位和文案;最后,抱着半成品火

    全国五一劳动奖章获得者聂海平:突破国外技术壁垒 用代码“敲”出属于中国的铺丝机
    全国五一劳动奖章获得者聂海平:突破国外技术壁垒 用代码“敲”出属于中国的铺丝机

    封面新闻记者 邹阿江 图由航空工业成飞提供 2026年“五一”国际劳动节前夕,航空工业成飞的技术专家聂海平,荣获了一枚全国五一劳动奖章。 消息传来,身边同事都说,“大师”拿奖是实至名归。可聂海平自己呢,还是那副老样子——摆摆手,说自己不过是个普通人,幸运地站在一个好平台上,干着点自己感兴趣的事儿罢了

    扎克伯格为Meta设立“硬指标”:最高80%工程师需在工作中使用AI
    扎克伯格为Meta设立“硬指标”:最高80%工程师需在工作中使用AI

    Meta的“AI原生”转型:指标驱动的深度变革 近期,一份曝光的内部文件揭示了一个明确的趋势:马克·扎克伯格正全力推动Meta向一家彻底的“AI原生”公司转型。这不仅仅是一句口号,而是通过设定具体、可量化的指标,将AI深度融入每一位员工、尤其是工程师的日常工作流程中。 从部门到公司:具体的AI渗透目

    我从测量帮工成长为技术骨干(海外纪闻)
    我从测量帮工成长为技术骨干(海外纪闻)

    “稍微往左移移,慢点,好,就在这。” 全站仪前的坐标点需要精确核对,通过对讲机传来的指令清晰有力,同时手势也同步示意着不远处的立杆员标定放样点。这一刻,大桥桥墩的位置正随着一个个坐标的落地而逐渐显现。 第一次独立承担桥梁放样任务,责任固然重大,但伴随着每个点的成功定位,那份扎实的成就感也油然而生。这

    AI Agent来袭,Github被“淹没”了
    AI Agent来袭,Github被“淹没”了

    AI编程浪潮正以超乎预期的速度重塑软件开发基础设施 软件开发的基础设施正在经历一场由AI驱动的剧变,其速度之快,超出了许多人的预期。作为核心的代码托管平台,GitHub正处在这场风暴的中心,一场由AI Agent驱动的流量海啸,已经让它的服务器负载频频告急。 就在4月7日,科技媒体The Infor

    欧洲最大苹果博物馆开馆:展出数千藏品,还原乔布斯创业车库
    欧洲最大苹果博物馆开馆:展出数千藏品,还原乔布斯创业车库

    欧洲最大苹果博物馆开馆:一场穿越科技与情怀的朝圣之旅 科技圈最近有个大新闻:为庆祝苹果公司成立50周年,欧洲规模最大的苹果博物馆,已于4月2日在荷兰历史名城乌得勒支正式向公众敞开了大门。这不仅仅是一个展览,更像是一次对个人电脑革命和硅谷精神的深度回溯。 走进这座占地超过21000平方英尺的广阔空间,

    夸克高考代码查询方法 备选志愿查看教程
    夸克高考代码查询方法 备选志愿查看教程

    志愿填报别再纠结!夸克免费助你精准选择,填志愿比高考还头疼?那是因为你还没找到好帮手!每年都有考生因志愿选择不当而错失心仪高校的机会,如今有了夸克高考志愿填报工具,这些烦恼一扫而空!如何通过夸克查询代码?只需四个步骤即可免费获取院校代码和专业代码:如何查看夸克高考的备选志愿?打开夸克浏览器后,在首页就能看到最新的夸克高考选项,点击进入即可。接着点击夸克高考,就能查看已填报的志愿详情了。夸克高考为何无法使用?这可能与网络状况有关,也可能是因为软件版本过旧。建议更新至最新版本,通常情况下,夸克高考可以正常使用

    PHP关闭伪静态代代码的方法详解
    PHP关闭伪静态代代码的方法详解

    PHP关闭伪静态代代码的方法详解随着网站开发的不断发展,伪静态代代码成为了优化网站链接、提升用户体验的重要一环。而有时候,我们也需要关闭伪静态代代码,可能是为了调试或者其他需求。在本文中,我们将逐步详细讨论如何关闭PHP中的伪静态代代码,并提供具体的代码示例。了解伪静态代代码首先,让我们简单了解一下什么是伪静态代代码。伪静态代代码是指通过URL重写技术,将动

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。