Python代码格式化工具pycodestyle怎么使用

蜗牛vps 互联网技术资讯 2021-11-29 388 0

本篇内容介绍了“Python代码格式化工具pycodestyle怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

看如下代码:

import time, datetime

class ListNode:
   def __init__(self, val):
       self.val = val
       self.next = None

   # in python next is a reversed word
   def reverse(self, head):
       prev = None
       while head:
           temp = head.next
           head.next = prev
           prev = head
           head = temp

       a = [
           [
               1,
               u'hello world',
               0
           ],
           [
               2,
               "hello python",
               0
           ],
       ]

这是一个不符合 PEP8 的代码段,用 pycodestyle 可检测有哪些地方不符合 PEP8 风格

$ pycodestyle link.py
link.py:1: [E401] multiple imports on one line
link.py:3: [E302] expected 2 blank lines, found 1

pycodestyle 提示我们有两处地方不符合规范,第一个是单行有多个 import,第二个是类与模块之间需要空两行,这只是一个简单代码示例,真正的业务代码可能有上百行甚至几百行,如果我们要根据 PEP8 规范逐个进行修改建议会非常耗时,而我们的开发过程中,如果时刻关注每一行代码是否完全遵循 PEP8,将影响开发效率。

而有这么一款工具 Black,号称不妥协的代码格式化工具,为什么叫不妥协呢?因为它检测到不符合规范的代码风格直接就帮你全部格式化好,根本不需要你确定,直接替你做好决定。它也是 requests 作者最喜欢的工具之一

使用非常简单,安装成功后,和其他系统命令一样使用,只需在 black 命令后面指定需要格式化的文件或者目录就ok

black link.py

Python代码格式化工具pycodestyle怎么使用  python 第1张


这是一款小而美的工具,它并不是完全按照 PEP8 规范来格式化,比如默认每行代码的字符数是88个,当然你可以通过参数 -l 自定义长度,能一行显示完成的代码会放在一行,比如有多个元素的列表

# in:

l = [1,
    2,
    3,
]

# out:

l = [1, 2, 3]

后者把多个元素放在一行,显然更易读,而且代码更紧凑(如果你的工资是按照代码行数来算的话,不建议这么做),Black 是 PEP8 的严格子集。我的最佳实践方式就是使用 PyCharm 自带的格式化工具配合 Black 使用。因为 Black 也支持集成到 Pycharm 中。

如何集成 Pycharm

1、 安装black:

pip install black

2、 找到 black 的安装路径

 $ which black  # linux/mac
 $ where black  # windows

3、 添加扩展工具,打开 Preferences->Tools->External Tools ,添加一个新的扩展工具,Program 填 black 的安装路径,Arguments 填  $FilePath$

Python代码格式化工具pycodestyle怎么使用  python 第2张


4、选择 Tools-> External Tools-> Black 即可对当前打开的文件斤西瓜代码格式化,当然,你还可以为其指定一个快捷键,使操作起来更方便。

Python代码格式化工具pycodestyle怎么使用  python 第3张

“Python代码格式化工具pycodestyle怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注蜗牛博客网站,小编将为大家输出更多高质量的实用文章!

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram