zoukankan      html  css  js  c++  java
  • 一个简单好玩的Python代码格式化工具

    代码可读性是评判代码质量的标准之一,有一个衡量代码质量的标准是 Martin 提出的 “WFT” 定律,即每分钟爆出 “WTF” 的次数。你在读别人代码或者做 Code Review 的时候有没有 “WTF” 冲动呢?

    为了帮助开发者统一代码风格,Python 社区提出了 PEP8 代码编码风格,它并没有强制要求大家必须遵循,Python 官方同时推出了一个检查代码风格是否符合 PEP8 的工具,名字也叫 pep8,后来被重命名为了 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

    图片


    这是一款小而美的工具,它并不是完全按照 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$

    图片


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

    图片


    值得注意的是,该工具只支持 Python3.6 环境,同时还处在 beta 版本

    最后多说一句,想学习Python可联系小编,这里有我自己整理的整套python学习资料和路线,想要这些资料的都可以进q裙609616831领取。

  • 相关阅读:
    Js 之判断某月有几天
    Java 之c3p0连接池对实体 "useSSL" 的引用必须以 ';' 分隔符结尾
    SQL真题实战(大厂真题)——来自牛客题霸
    公共api
    Windows下搭建redis 哨兵环境
    hibernate查询不到关联对象列表fetchType的选择
    「IOI2021」Dungeons
    「Gym103261H」Greedy Algorithm
    「牛客」牛半仙的妹子序列
    「UOJ 632」挑战最大团
  • 原文地址:https://www.cnblogs.com/python-miao/p/14424239.html
Copyright © 2011-2022 走看看