提高python代碼可讀性利器pycodestyle使用詳解
編程是數(shù)據(jù)科學(xué)中不可或缺的技能,雖然創(chuàng)建腳本來執(zhí)行基本功能很容易,但編寫大規(guī)??勺x性良好的代碼需要更多的思考。
關(guān)于PEP-8
pycodestyle 檢查器提供基于 PEP-8 樣式約定的代碼建議。那么 PEP-8 到底是什么呢?
PEP 代表 Python 增強(qiáng)建議,PEP-8 是一個(gè)概述編寫 Python 代碼最佳實(shí)踐的指南。它的主要目標(biāo)是通過標(biāo)準(zhǔn)化代碼樣式來提高代碼的整體一致性和可讀性。
目的
快速瀏覽一下PEP-8文檔,就會(huì)發(fā)現(xiàn)有太多的最佳實(shí)踐需要記住。
而且,已經(jīng)花了這么多精力編寫了這么多行代碼,你當(dāng)然不希望浪費(fèi)更多的時(shí)間手動(dòng)檢查腳本的可讀性。
這就是 pycodestyle 自動(dòng)分析 Python 腳本并指出代碼可以改進(jìn)的地方。
安裝
pip 是首選的安裝程序,你可以通過在終端中運(yùn)行以下命令來安裝或升級(jí) pycodestyle:
# Install pycodestyle pip install pycodestyle # Upgrade pycodestyle pip install --upgrade pycodestyle
基本用法
最直接的用法是在 Python 腳本(.py文件)上作為命令在終端中運(yùn)行pycodestyle。
讓我們使用以下示例腳本(名為 pycodestyle_sample_script.py)進(jìn)行演示:
# 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
我們通過運(yùn)行以下簡(jiǎn)單命令來實(shí)現(xiàn)pycodestyle:
pycodestyle pycodestyle_sample_script.py
輸出指定違反PEP-8樣式約定的代碼位置:

每行中由冒號(hào)分隔的一對(duì)數(shù)字(如3:19)分別表示行號(hào)和字符號(hào)。
例如,在")"之前輸出6:64 E202空格意味著在第6行中,第64個(gè)字符標(biāo)記處有一個(gè)意外的空格。
你也可以通過分析 statistics 參數(shù)來查看錯(cuò)誤發(fā)生的頻率:
pycodestyle --statistics -qq pycodestyle_sample_script.py

在上面的輸出中,我們看到在右括號(hào)“)”之前出現(xiàn)了4次意外的空白。
高級(jí)用法
我們還可以將 pycodestyle 直接導(dǎo)入到 Python 代碼中,以執(zhí)行自動(dòng)化測(cè)試。這對(duì)于自動(dòng)測(cè)試多個(gè)腳本的編碼風(fēng)格一致性非常有用。
例如,可以編寫以下類來自動(dòng)檢查是否符合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")
還可以配置該工具,以便根據(jù)我們定義的樣式規(guī)則首選項(xiàng)進(jìn)行測(cè)試。例如,我們可以刪除不希望在檢查中檢測(cè)到的特定錯(cuò)誤:
style = pycodestyle.StyleGuide(ignore=['E201', 'E202', 'E501'])
或者,我們可以指示 pycodestyle 一起使用不同的配置文件(包含一組特定的樣式規(guī)則)。
import pycodestyle style = pycodestyle.StyleGuide(config_file='/path/to/tox.ini')
如果你需要了解更多的功能,訪問pycodestyle文檔獲取更多詳細(xì)信息。
https://pycodestyle.pycqa.org/en/latest/intro.html
結(jié)論
代碼的閱讀頻率高于編寫頻率,代碼的一致性、可理解性和結(jié)構(gòu)整潔是至關(guān)重要的。在本文中,我們研究了如何使用 pycodestyle 工具來檢查 Python 腳本是否符合 PEP-8 代碼樣式規(guī)范。
相信掌握它后,我們代碼質(zhì)量會(huì)有質(zhì)的飛躍。
以上就是提高python代碼可讀性利器pycodestyle使用詳解的詳細(xì)內(nèi)容,更多關(guān)于python代碼可讀性利器pycodestyle的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python如何導(dǎo)出微信公眾號(hào)文章方法詳解
這篇文章主要介紹了python如何導(dǎo)出微信公眾號(hào)文章方法詳解,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
用Matlab讀取CSV文件出現(xiàn)不匹配問題及解決
這篇文章主要介紹了用Matlab讀取CSV文件出現(xiàn)不匹配問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Python3 pip3 list 出現(xiàn) DEPRECATION 警告的解決方法
今天小編就為大家分享一篇Python3 pip3 list 出現(xiàn) DEPRECATION 警告的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02
Python實(shí)現(xiàn)智慧校園自動(dòng)評(píng)教全新版
上一次的智慧校園自動(dòng)評(píng)教是用的selenium庫去模擬人去對(duì)瀏覽器進(jìn)行點(diǎn)擊操作,雖然比手動(dòng)評(píng)教要快,但是效率還是不高.從而想去嘗試重新寫一份不用selenium的評(píng)教方案,功夫不負(fù)有心人,最終成功了,需要的朋友可以參考下2021-06-06
python實(shí)現(xiàn)發(fā)送form-data數(shù)據(jù)的方法詳解
這篇文章主要介紹了python實(shí)現(xiàn)發(fā)送form-data數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了Python發(fā)送form-data數(shù)據(jù)的相關(guān)操作步驟、實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2019-09-09
Python方法中self和parent參數(shù)用法詳解
大家好!今天我們來聊一個(gè) Python 中常見但可能讓人困惑的話題:方法參數(shù)里的 self 和 parent,在這篇博客中,我會(huì)分三個(gè)章節(jié)逐步講解它們的含義、作用和實(shí)際應(yīng)用,帶你徹底搞懂它們,需要的朋友可以參考下2025-04-04
bluepy 一款python封裝的BLE利器簡(jiǎn)單介紹
這篇文章主要介紹了bluepy 一款python封裝的BLE利器簡(jiǎn)單介紹,bluepy 是github上一個(gè)很好的藍(lán)牙開源項(xiàng)目, 其主要功能是用python實(shí)現(xiàn)linux上BLE的接口。,需要的朋友可以參考下2019-06-06
python實(shí)現(xiàn)獲取單向鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)的值示例
這篇文章主要介紹了python實(shí)現(xiàn)獲取單向鏈表倒數(shù)第k個(gè)結(jié)點(diǎn)的值,結(jié)合實(shí)例形式分析了Python針對(duì)單向鏈表的定義、遍歷、傳值、判斷等相關(guān)操作技巧,需要的朋友可以參考下2019-10-10

