提高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
猜你喜欢
- 今天呱呱发了一个网址给我看,大概效果就是类似幻灯片的效果。当时我的第一反映这个是不是用锚点做的啊呢,以前在网上看过用锚点做的这类的效果。脑袋
- 在上一讲代码的基础上,做进一步修改,成为了如下程序,请看官研习这个程序:#!/usr/bin/env python#coding:utf-8
- 前言学习Python中,总想做个图形界面,找来找去,找到了tkinter。练习内容:图形界面中,点击按钮后,利用弹出对话框选择文件(或文件夹
- 什么是缓存组件Cache缓存是提升 Web 应用性能简便有效的方式。 通过将相对静态的数据存储到缓存并在收到请求时取回缓存, 应用程序便节省
- 使用Python IDLE时发现并没有清空当前窗口的快捷键,也没有像 clear 这样的命令,使用非常不便。新建一个 ClearWindow
- 【译者的话】 作为一家非盈利性的防止青少年 * 的机构, Five Alive 希望拥有一个独特的标志来配合机构的宣传。他们决定在网站上通过竞
- 一、基本概念Reactive X中有几个核心的概念,先来简单介绍一下。1.1、Observable和Observer(可观察对象和观察者)首
- 1、tensorflow(不定长)文本序列读取与解析tensorflow读取csv时需要指定各列的数据类型。但是对于RNN这种接受序列输入的
- 来自巴西的设计师Roger Oddone的作品,通过此作品你可以了解到logo的设计的一些思路。
- 反射什么是反射? - 反射主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省) 面向对象中的反射&nb
- 当py文件中引用了库face_recognition但是python中没有安装这个库的时候,就会出现No module named '
- 问题出现与解决Pandas进行数据处理之后,假如想将其转化为json,会出现一个bug,就是中文文字是以乱码存储的,也就是\uXXXXXX的
- 第一次写ASP类,实现功能:分段统计程序执行时间,输出统计表等.程序代码:Class ccClsProcessTimeRecord
- 概述pandas中与库版本或依赖库版本相关的API主要有以下4个:pandas.__version__:查看pandas简要版本信息。pan
- 工作中最常见的配置文件有四种:普通key=value的配置文件、Json格式的配置文件、HTML格式的配置文件以及YMAML配置文件。这其中
- Python是一门简单易学的编程语言。阅读好的Python程序感觉就像阅读英语,尽管是非常严格的英语。Python的这种伪代码特性是其最大强
- 介绍本文主要介绍Python中列表生成式的基本知识和使用生成列表要生成list [1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- 本文实例为大家分享了python模拟登录图书馆的具体代码,供大家参考,具体内容如下模拟表单提交的原理:我们都知道Http是无状态的,所以当我
- 对于Dreamweaver这个广大用户早有听闻的网页编辑工具,除功能强大外,Dreamweaver一向被推崇为同类网页编辑软件中产生垃圾代码
- 第一阶段:从官网下载Anaconda之后,安装,一切正常。打开Anaconda navigator,提示我是否更新,要选不要更新。点击spy