点这里 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错误.这显然有些局限性.比如:遵循 PEP 8 指导的代码可能就不会被格式化了,但这并不说明代码看起来就舒服. 译注:lint 是最著名的C语言工具之一,是由贝尔实验室SteveJohnson于1979在PCC(PortableC Compiler)基础上开发的静态代码分析,一般由UNIX系统提供.与大多数C语言编译器相比,lint可以对程序进行更加广泛的错误分析,是一种…
学习资料: https://github.com/google/yapf 背景 现在的大多数 Python 代码格式化工具(比如:autopep8 和 pep8ify)是可以移除代码中的 lint 错误.这显然有些局限性.比如:遵循 PEP 8 指导的代码可能就不会被格式化了,但这并不说明代码看起来就舒服. 但 YAPF 独辟蹊径.它脱胎于由 Daniel Jasper 开发的 clang-format.大体上来说,这个算法获取代码,然后把初始代码重新编排,即便初始代码并没有违背规范,也可使其达…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在本系列前面所有文章中,我们分别介绍了 argparse.docopt 和 click 的主要功能和用法.它们各具特色,都能出色地完成命令行任务.argparse 是面向过程的,需要先设置解析器,再定义参数,再解析命令行,最后实现业务逻辑.docopt 先用声明式的语法定义出参数,再过程式地…
代码可读性是评判代码质量的标准之一,有一个衡量代码质量的标准是 Martin 提出的 “WFT” 定律,即每分钟爆出 “WTF” 的次数.你在读别人代码或者做 Code Review 的时候有没有 “WTF” 冲动呢? 为了帮助开发者统一代码风格,Python 社区提出了 PEP8 代码编码风格,它并没有强制要求大家必须遵循,Python 官方同时推出了一个检查代码风格是否符合 PEP8 的工具,名字也叫 pep8,后来被重命名为了 pycodestyle. 看如下代码: 这是一个不符合 PEP…
学习资料: https://github.com/hhatto/autopep8 背景 autopep8 会根据 PEP 8 样式文档来格式化 python 代码.它使用 pep8 来决定代码的哪部分需要被格式化. autopep8 可以修复 pep8汇报的大部分格式问题. PEP8 是 Python Enhancement Proposal 的缩写,翻译过来就是 python 增强建议书, 是python的一个官方样式指导.它规定了一些比较好的编码方式,比如用4个空格代替缩进等等. PEP 0…
平时习惯了杂乱无章地编写代码,而最后的代码勘定,却依赖于PyCharm自带的格式化工具,以及其自带的提示功能来规范代码.而pycharm里的格式化工具,不支持对多文件进行代码批量格式化,曾经尝试些解决方案,结果无功而返,不了了之.今天看到这个工具,终于有望了. # 本地小试cd /home/kylin/programgit clone https://github.com/google/yapf.gitPYTHONPATH=/home/kylin/program/yapf/ python /ho…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在上一篇文章中我们介绍了 fire 的子命令.嵌套命令和属性访问等内容,今天我们将继续深入了解 fire 的其他功能. 本系列文章默认使用 Python 3 作为解释器进行讲解. 若你仍在使用 Python 2,请注意两者之间语法和库的使用差异哦~ 二.功能 2.1 最简命令实现 在上一节中…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在前面三篇介绍 fire 的文章中,我们全面了解了 fire 强大而不失简洁的能力.按照惯例,我们要像使用 argparse.docopt 和 click 一样使用 fire 来实现 git 命令. 本文的关注点并不在 git 的各种命令是如何实现的,而是怎么使用 fire 去打造一个实用命…
作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Article 一.前言 在第一篇"初探 fire"的文章中,我们初步掌握了使用 fire 的简单步骤,了解了它 Pythonic 的用法. 今天我们将深入了解 fire 的子命令.嵌套命令和属性访问功能. 本系列文章默认使用 Python 3 作为解释器进行讲解. 若你仍在使用 Python 2…
资料: https://github.com/spulec/pep8ify 安装 $ pip install pep8ify 用法 Usage: 2to3 [options] file|dir ... Options: -h, --help show this help message and exit -d, --doctests_only Fix up doctests only -f FIX, --fix=FIX Each FIX specifies a transformation; d…