亲宝软件园·资讯

展开

python代码可读性利器pycodestyle

Python学习与数据挖掘 人气:0

编程是数据科学中不可或缺的技能,虽然创建脚本来执行基本功能很容易,但编写大规模可读性良好的代码需要更多的思考。

关于PEP-8

pycodestyle 检查器提供基于 PEP-8 样式约定的代码建议。那么 PEP-8 到底是什么呢?

PEP 代表 Python 增强建议,PEP-8 是一个概述编写 Python 代码最佳实践的指南。它的主要目标是通过标准化代码样式来提高代码的整体一致性和可读性。

目的

快速浏览一下PEP-8文档,就会发现有太多的最佳实践需要记住。

而且,已经花了这么多精力编写了这么多行代码,你当然不希望浪费更多的时间手动检查脚本的可读性。

这就是 pycodestyle 自动分析 Python 脚本并指出代码可以改进的地方。

安装

pip 是首选的安装程序,你可以通过在终端中运行以下命令来安装或升级 pycodestyle:

# Install pycodestyle
pip install pycodestyle
# Upgrade pycodestyle
pip install --upgrade pycodestyle

基本用法

最直接的用法是在 Python 脚本(.py文件)上作为命令在终端中运行pycodestyle。

让我们使用以下示例脚本(名为 pycodestyle_sample_script.py)进行演示:

# pycodestyle_sample_script.py 
# Import libraries
import numpy as np, pandas as pd
# Take the users input
words = raw_input("Enter some text to translate to pig latin: " )
# Break apart the words into a list
words_list = words.split(' ' )
for word in words_list:
    if len(word) >= 3 : # For this pig latin translation, we only want to translate words greater than 3 characters
        pig_latin = word + "%say" % (word[0])
        pig_latin = pig_latin[ 1: ]
        print(pig_latin )
    else:
        pass

我们通过运行以下简单命令来实现pycodestyle:

pycodestyle pycodestyle_sample_script.py

输出指定违反PEP-8样式约定的代码位置:

每行中由冒号分隔的一对数字(如3:19)分别表示行号和字符号。

例如,在")"之前输出6:64 E202空格意味着在第6行中,第64个字符标记处有一个意外的空格。

你也可以通过分析 statistics 参数来查看错误发生的频率:

pycodestyle --statistics -qq pycodestyle_sample_script.py

在上面的输出中,我们看到在右括号“)”之前出现了4次意外的空白。

高级用法

我们还可以将 pycodestyle 直接导入到 Python 代码中,以执行自动化测试。这对于自动测试多个脚本的编码风格一致性非常有用。

例如,可以编写以下类来自动检查是否符合PEP-8约定:

import unittest
import pycodestyle
class TestCodeFormat(unittest.TestCase):
    def test_conformance(self):
        """Test that the scripts conform to PEP-8."""
        style = pycodestyle.StyleGuide(quiet=True)
        result = style.check_files(['file1.py', 'file2.py'])
        self.assertEqual(result.total_errors, 0, "Found style  
        errors")

还可以配置该工具,以便根据我们定义的样式规则首选项进行测试。例如,我们可以删除不希望在检查中检测到的特定错误:

style = pycodestyle.StyleGuide(ignore=['E201', 'E202', 'E501'])

或者,我们可以指示 pycodestyle 一起使用不同的配置文件(包含一组特定的样式规则)。

import pycodestyle
style = pycodestyle.StyleGuide(config_file='/path/to/tox.ini')

如果你需要了解更多的功能,访问pycodestyle文档获取更多详细信息。

http://pycodestyle.pycqa.org/en/latest/intro.html

结论

代码的阅读频率高于编写频率,代码的一致性、可理解性和结构整洁是至关重要的。在本文中,我们研究了如何使用 pycodestyle 工具来检查 Python 脚本是否符合 PEP-8 代码样式规范。

相信掌握它后,我们代码质量会有质的飞跃。

加载全部内容

相关教程
猜你喜欢
用户评论