提高python代码可读性利器pycodestyle使用详解
作者:Python学习与数据挖掘 发布时间:2023-09-04 11:22:04
编程是数据科学中不可或缺的技能,虽然创建脚本来执行基本功能很容易,但编写大规模可读性良好的代码需要更多的思考。
关于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 代码样式规范。
相信掌握它后,我们代码质量会有质的飞跃。
来源:https://blog.csdn.net/weixin_38037405/article/details/118469890


猜你喜欢
- 我们知道,在面向对象编程里面, 继承 是一个很重要的概念。子类可以使用父类的方法和属性。例如下面这段代码:class Father: &nb
- 1.Vue父子组件通信方式父子组件通信方式一般为props和emit组合使用,那么在不同的文件中应该如何使用呢?|.vue文件和.jsx文件
- 变量类型ECMAScript变量可能包含两种不同类型的数据值:基本类型和引用类型。基本类型基本类型指的是简单的数据段,5种基本数据类型:un
- 前言pygame中的精灵碰撞是可见游戏中用的最基础的东西,这里结合官方文档和小甲鱼的网站上的内容做个小总结,方便日后使用。pygame.sp
- 本文实例讲述了python中enumerate() 与zip()函数的使用比较。分享给大家供大家参考,具体如下:enumerate() 与z
- 数据库数据导出为excel表格,也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库操作语句的。下面先来看看完成的效果吧。数据源导出结果依
- CSS+DIV是网站标准(或称“WEB标准”)中常用的术语之一,通常为了说明与HTML网页设计语言中的表格(table)定位方式的区别,因为
- Python作为一门脚本语言,经常作为脚本接受命令行传入参数,Python接受命令行参数大概有三种方式。因为在日常工作场景会经常使用到,这里
- memcache 的工作就是在专门的机器的内存里维护一张巨大的hash表,来存储经常被读写的一些数组与文件,从而极大的提高网站的运行效率,减
- 一.局部变量、全局变量1.什么是局部变量作用范围在函数内部,在函数外部无法使用2.什么是全局变量在函数内部和外部均可使用3.如何将函数内定义
- PyTorch基础入门三:PyTorch搭建多项式回归模型 1)理论简介对于一般的线性回归模型,由于该函数拟合出来的是一条直线,所
- 我们可以很轻松的从1到9或者从9到1正着背一遍,反着背一遍。但是想要在编程实现这些看起来简单的操作,就没那么容易了。因为计算机需要一些指令,
- 什么是Python元类?Python元类是与Python的面向对象编程概念相关的高级功能之一。它确定类的行为,并进一步帮助其修改。用Pyth
- 这篇文章主要介绍了python智联招聘爬虫并导入到excel代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 像素是计算机视觉中图像的重要属性。它们是表示图像 * 定空间中光的颜色强度的数值,是图像中数据的最小单位。图像中的像素总数是高度、宽度和通道的
- 本文实例讲述了PHP登录验证功能。分享给大家供大家参考,具体如下:登录界面具体实现方法如下:login.html<!DOCTYPE h
- 随着因特网的发展,在网络环境中,数据库应用渐渐向操作简单、功能实用的方向发展。本文介绍如何利用ASP技术实现对数据库进行在线维护的方法,并给
- OpenCV图像处理一、图像入门1.读取图像使用 cv.imread() 函数读取一张图像,图片应该在工作目录中,或者应该提供完整的图像路径
- 哪里出问题了python 中,使用 global 会将全局变量设为本函数可用。同时,在函数内部访问变量会先本地再全局。在嵌套函数中,使用 g
- 本文实例讲述了Python设计模式之外观模式。分享给大家供大家参考,具体如下:外观模式(Facade Pattern):为子系统中的一组接口