• 「Python实用秘技14」快速优化Python导包顺序


    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills

      这是我的系列文章「Python实用秘技」的第14期,本系列立足于笔者日常工作中使用Python积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧。

      作为系列第14期,我们即将学习的是:快速优化Python导包顺序。

      当我们书写Python代码的时候,遵守标准的代码规范可以帮助我们提升代码的可读性和易维护性。而在常见的Python代码规范中,我们在代码开头导包时,建议按照标准库>第三方库>自定义库或相对引用库的顺序组织代码,且各类型导包逻辑中建议按照字母顺序进行排列。

      但在日常代码编写过程中,我们很难一直手动保持这样的标准习惯,这时我们就可以使用usort这个实用的工具来辅助优化代码中的导包顺序😉。

      usortfacebook即现在的meta公司进行开源维护,使用pip install usort进行安装后,即可直接针对指定的py文件或整个项目进行导包顺序优化,以下面的代码为例,原始的导包顺序如下,其中demo是同级自定义包:

    import pandas as pd
    import numpy as np
    import feffery_antd_components as fac
    import feffery_utils_components as fuc
    import re
    import dash
    from demo import Demo
    from dash import html, dcc
    
    

      通过在终端执行usort format main.py进行优化后,导包顺序被更新为如下状态,可以看到优化后的导包顺序遵循了前面所说的标准规范:

    import re
    
    import dash
    import feffery_antd_components as fac
    import feffery_utils_components as fuc
    import numpy as np
    import pandas as pd
    from dash import dcc, html
    from demo import Demo
    
    

      且usort不会犯一些ide中格式化代码时,将一些必须在前面执行的代码逻辑误移动至导包逻辑后的错误,譬如下面的warnings.filterwarnings(),我们需要其在其他所有导包逻辑之前执行,以起到屏蔽相关警告信息的作用。

      如果是使用ide中自带的代码美化快捷功能,可以看到美化后warnings.filterwarnings()被强制挪动到最后:

      而usort就智能多了:


      本期分享结束,咱们下回见~👋

  • 相关阅读:
    能源势动:电力行业的碳中和该如何实现?
    开源AI Agent框架的选择
    牛客C++刷题记录
    网络安全(黑客)自学
    linux driver i2c core driver
    span标签的作用
    java-php-python-ssm-乌托邦宿舍管理系统2021计算机毕业设计
    常用基本函数
    C++学习之list的实现
    Unity入门08——核心系统02
  • 原文地址:https://www.cnblogs.com/feffery/p/17483380.html