isort包介绍——可以不用 但不能不知道——python包推荐系列

背景

  1. 今天在看一个开源包,发现他的requirements.txt里面放着isort包。
    isort包介绍——可以不用 但不能不知道——python包推荐系列_第1张图片

  2. 之前也在vscode的插件名单中,看到和这个相同名称的vscode插件,针对python语言的。但是我之前也没细看他到底是干嘛用的,我觉得vscode既然推荐了,而且还是Microsoft开发的,那肯定是优秀的包。索性就安装了。

isort包介绍——可以不用 但不能不知道——python包推荐系列_第2张图片

那问题来了。这个包到底是用来干嘛的。可得好好研究研究了。

介绍

isort包是将python模块中的import部分代码,按照PEP8的建议进行规范化。

PEP8建议python模块的import导入顺序如下:

  1. 标准库里面的模块要先导入。
  2. 第三方模块后导入。
  3. 自己的模块最后导入。
  4. 每一级,还需要按照字母表顺序进行排序。

案例

比如说,下面的代码就是你的代码。看起来乱糟糟的奥~,其中

  1. my_lib是你自己的包。
  2. os、sys之类的是系python的标准库。
  3. third_party是第三方的包。

假设这个代码文件名为example.py

from my_lib import Object

import os

from my_lib import Object3

from my_lib import Object2

import sys

from third_party import lib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14

import sys

from __future__ import absolute_import

from third_party import lib3

print("Hey")
print("yo")
print("公众号: 统计学人")

这个时候,需要安装isort,如果没有安装,运行pip install isort进行安装。

然后在终端里面,输入:isort example.py,遮掩就把你的py文件的导入包部分规范化了。就像是这样:

from __future__ import absolute_import

import os
import sys

from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                         lib9, lib10, lib11, lib12, lib13, lib14, lib15)

from my_lib import Object, Object2, Object3

print("Hey")
print("yo")

大概就是这样:
isort包介绍——可以不用 但不能不知道——python包推荐系列_第3张图片

使用注意事项

  1. 如果只是想针对特定的python脚本文件,只需要在终端里面这么用:isort mypythonfile.py mypythonfile2.py
  2. 如果是想把这个文件夹下,所有的python脚本,全部规范化。那就:isort .或者isort **/*.py。这两句是等效的。感觉最好是使用isort **/*.py吧,使用isort .需要开启globstar。不一定会成功。
  3. 如果想看一个文件的前后变化,可以这么做:isort mypythonfile.py --diff。会显示文件改变的前后差异。
  4. 如果想在python里面使用,可以这么做:
import isort
isort.file("pythonfile.py")

或者这么做:

import isort
sorted_code = isort.code("import b\nimport a\n")

如何在vscode里面使用

  1. 需要在python里面安装好isort.
pip install isort
  1. 在vscode的插件中安装好isort这个插件。(是的,没想到他俩名字都是一样的,功能也是一样)。
    isort包介绍——可以不用 但不能不知道——python包推荐系列_第4张图片
  2. 然后就可以使用了。

isort包介绍——可以不用 但不能不知道——python包推荐系列_第5张图片

QA环节

Q: “我不是杠啊,就一个规范化python导入模块的包,有必要写一篇文章来介绍么?python规范化有必要吗“

A:其实就2个方面吧:

  1. 如果还是小白入门的话,其实不一定非要这么做,当你代码多起来的时候,项目大起来的时候,才需要这么做。
  2. 代码,就像是程序员的面子一样。见代码如见人。干净清爽的代码,让人看的是如沐春风~。
  3. 如果你的代码是需要给别人看,建议还是使用规范化一下。就是要这个脸

参考链接

  1. https://pycqa.github.io/isort/
  2. https://www.cnblogs.com/poloyy/p/15549542.html
  3. https://muzing.top/posts/38b1b99e/

最后

有些包,可以不用,但是不能不知道。

就像是吃饭、看书一样

饭一顿吃完,下一顿还要吃;

书一本看完了,随着时间的流逝,会忘记。

但是吸收到的东西,都将带给我们一些能量。

这也是做这个系列的初衷。

ok

以上就是本文的全部内容了

如果你喜欢这个系列的文章

欢迎关注我,微信公众号:【统计学人】

下一篇文章

我们继续见面

你可能感兴趣的:(python,python,开发语言,vscode)