提高python代码可读性利器pycodestyle使用详解

 更新时间:2021年11月22日 15:55:37   作者:Python学习与数据挖掘  
鉴于 Python 在数据科学中的流行,我将深入研究 pycodestyle 的使用方法,以提高 Python 代码的质量和可读性。如果你想提升代码质量,欢迎收藏学习,有所收获,点赞支持

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

关于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文档获取更多详细信息。

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

结论

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

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

以上就是提高python代码可读性利器pycodestyle使用详解的详细内容,更多关于python代码可读性利器pycodestyle的资料请关注脚本之家其它相关文章!

相关文章

  • python如何导出微信公众号文章方法详解

    python如何导出微信公众号文章方法详解

    这篇文章主要介绍了python如何导出微信公众号文章方法详解,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 用Matlab读取CSV文件出现不匹配问题及解决

    用Matlab读取CSV文件出现不匹配问题及解决

    这篇文章主要介绍了用Matlab读取CSV文件出现不匹配问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python3 pip3 list 出现 DEPRECATION 警告的解决方法

    Python3 pip3 list 出现 DEPRECATION 警告的解决方法

    今天小编就为大家分享一篇Python3 pip3 list 出现 DEPRECATION 警告的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python实现智慧校园自动评教全新版

    Python实现智慧校园自动评教全新版

    上一次的智慧校园自动评教是用的selenium库去模拟人去对浏览器进行点击操作,虽然比手动评教要快,但是效率还是不高.从而想去尝试重新写一份不用selenium的评教方案,功夫不负有心人,最终成功了,需要的朋友可以参考下
    2021-06-06
  • Python中Pyenv virtualenv插件的使用

    Python中Pyenv virtualenv插件的使用

    pyenv是管理python版本的工具。安装pyenv后,可以管理各种python版本,并且各个版本的环境完全独立,互不干扰。今天通过本文给大家分享Python中Pyenv virtualenv插件的使用,感兴趣的朋友一起看看吧
    2021-06-06
  • python实现发送form-data数据的方法详解

    python实现发送form-data数据的方法详解

    这篇文章主要介绍了python实现发送form-data数据的方法,结合实例形式分析了Python发送form-data数据的相关操作步骤、实现方法与注意事项,需要的朋友可以参考下
    2019-09-09
  • Python方法中self和parent参数用法详解

    Python方法中self和parent参数用法详解

    大家好!今天我们来聊一个 Python 中常见但可能让人困惑的话题:方法参数里的 self 和 parent,在这篇博客中,我会分三个章节逐步讲解它们的含义、作用和实际应用,带你彻底搞懂它们,需要的朋友可以参考下
    2025-04-04
  • bluepy 一款python封装的BLE利器简单介绍

    bluepy 一款python封装的BLE利器简单介绍

    这篇文章主要介绍了bluepy 一款python封装的BLE利器简单介绍,bluepy 是github上一个很好的蓝牙开源项目, 其主要功能是用python实现linux上BLE的接口。,需要的朋友可以参考下
    2019-06-06
  • Python 中星号(*)的用法小结

    Python 中星号(*)的用法小结

    星号​​*​​ 往往被称为乘法运算符,是所有程序中最为常用的运算符号之一,在Python 中,星号还有很多隐藏的强大功能, 本文将用最容易理解的例子来解释星号*的 五个使用场景,从初级用法到高阶用法,感兴趣的朋友可以参考下
    2023-08-08
  • python实现获取单向链表倒数第k个结点的值示例

    python实现获取单向链表倒数第k个结点的值示例

    这篇文章主要介绍了python实现获取单向链表倒数第k个结点的值,结合实例形式分析了Python针对单向链表的定义、遍历、传值、判断等相关操作技巧,需要的朋友可以参考下
    2019-10-10

最新评论