Programovanie

Štýl Pythonu: 5 nástrojov na vyčistenie kódu Pythonu

Teoreticky je akýkoľvek kód v jazyku Python v poriadku, pokiaľ je syntakticky správny a funguje podľa plánu. V praxi chcete vo svojich projektoch uplatniť konzistentný štýl, najlepšie taký, ktorý sa bude riadiť vlastnými odporúčaniami štýlu v jazyku Python. Dobrou správou je, že to nemusíte robiť ručne. Ekosystém Python obsahuje celý rad nástrojov, od vysoko zameraných po rozsiahle, aby sa zabezpečilo, že zdrojový kód Pythonu dodržiava konvencie štýlov.

V tomto článku preskúmame štyri populárne nástroje na kontrolu štýlov kódu Python a jeden na konzistentné preformátovanie kódu. IDE Pythonu ako PyCharm alebo Visual Studio Code ich podporujú natívne alebo s rozšírením, takže ich možno ľahko integrovať do vášho vývojového pracovného toku.

Pycodestyle

PEP 8 je dokument, ktorý objasňuje Pythonove konvencie kódovania - všetko od toho, či pri odsadení používať karty alebo medzery (použite štyri medzery, problém je vyriešený), až po pomenovanie premenných a objektov. Pycodestyle je modul Python, ktorý porovnáva kód Pythonu s odporúčaniami PEP 8 a poskytuje správu o tom, kde je analyzovaný kód mimo špecifikácie.

Pycodestyle neposkytuje automatické opravy problémov; to je na tebe. Ale Pycodestyle je vysoko konfigurovateľný, čo vám umožní potlačiť konkrétne druhy chýb alebo analyzovať iba konkrétne súbory v zdrojovom strome. A takmer každé IDE s podporou Pythonu podporuje aj Pycodestyle, takže je to jednoduchá voľba pre univerzálnu kompatibilitu, ak nie funkčnosť.

Veľa lintererov kódu Pythonu môže v Pythone pracovať ako moduly a Pycodestyle nie je výnimkou. Môžete ho použiť na programové overenie kódu, napríklad ako súčasť testovacej sady.

Najlepšie pre:Základné overenie zhody PEP 8.

Autopep8

Autopep8 pokračuje tam, kde Pycodestyle končí. Pomocou Pycodestyle určuje, aké zmeny je potrebné vykonať, potom preformátuje kód tak, aby zodpovedal poskytnutým návrhom. Existujúce súbory môžu byť naformátované na miesto alebo zapísané do nových súborov. Autopep8 tiež opravuje množstvo ďalších problémov, ktoré sa môžu vkrádať, ako je čistenie kódu prevedeného z Pythonu 2 na Python 3 alebo súbory, ktoré majú zmiešané značky na ukončenie riadku. A Autoprep8 je možné programovo použiť na preformátovanie kódu dodaného ako reťazce.

Najlepšie pre: Prevod súborov tak, aby vyhovoval požiadavkám PEP-8.

Flake8

Flake8 spája niekoľko nástrojov na zostavovanie a rozloženie kódu v Pythone do jedného balíka. Spolu s programom PyFlakes, ktorý používa kontrolu syntaxe na zisťovanie základných chýb, a programom Pycodestyle, o ktorom sme hovorili vyššie, poskytuje Flake8 ďalší nástroj na kontrolu „cyklomatickej zložitosti“ projektu - teda počtu nezávislých kódových ciest nájdených v programe. . (Cyklomatická zložitosť je potenciálne užitočnou metrikou, ak napríklad chcete zabrániť tomu, aby sa základný modul stal príliš nepodstatným.) Na konci každej analýzy poskytne Flake8 percentilovú metriku pre celkovú kvalitu analyzovaného kódu, spôsob, ako rýchlo získať predstavu o tom, ktoré časti kódovej základne sú najproblematickejšie.

Flake8 má tiež plug-in systém, takže podšívku je možné spojiť so záväzkami Git alebo inými automatizovanými akciami - napríklad na odoslanie problémového kódu do preformátovača.

Najlepšie pre:Posúdenie celkovej kvality kódu s konkrétnymi odporúčaniami.

Pylint

Pylint je pravdepodobne najrozšírenejším a najpodporovanejším Pythonovým linterom. Rovnako ako ostatné, vyhľadáva chyby a odchýlky od štandardov kódovania vo vašom kóde Python a ponúka zmeny, ako tieto chyby opraviť.

Pylint je tiež pravdepodobne najviac kompletista kontrolórov kódu v tom zmysle, že vás môže varovať pred mnohými problémami s vaším kódom, z ktorých niektoré nemusia byť vo vašom konkrétnom kontexte relevantné. Výsledky môžu byť podrobné, ale môžu byť tiež prispôsobené tak, aby vyhovovali požiadavkám konkrétneho projektu.

Pylint hľadá päť postupne problematickejších tried čísel. „Konvencie“ sú porušenia PEP 8 alebo iných pravidiel konzistencie v Pythone. „Refaktory“ označujú vôňu kódu, bežné chyby alebo kód, ktorý je možné prepracovať tak, aby bol efektívnejší alebo menej mätúci, napríklad cyklický import alebo súbory s príliš veľkým počtom podobných riadkov, ktoré by sa dali zhustiť do spoločnej funkcie. „Varovania“ sú problémy špecifické pre Python, napríklad nedosiahnuteľný kód (všetko ponávrat vo funkcii) alebo chýbajúce triedy__init__ metóda. „Chyby“ sú skutočné chyby kódu, ako nedefinované premenné, a „fatálne“ problémy, ktoré bránia Pylintu dokonca bežať.

Znova je to, čo robí Pylint najužitočnejším a najťažším na váhe, je množstvo spätnej väzby, ktorú dáva. Dobrá správa je, že pre tých, ktorí to chcú doladiť, je možné Pylintovu výrečnosť a členitosť upraviť podľa projektu alebo dokonca podľa súboru. Navyše môžete čerpať z radu doplnkov Pylint, ktoré pridávajú konkrétne druhy kontrol, napríklad príliš zložitý kód (dlhé reťazceaks atď.) alebo podšívka pre zastarané zabudované prvky.

Najlepšie pre:Kontrola kvality polievky s orechmi pre kód za predpokladu, že vám nevadí doladiť jeho nastavenia, aby nedošlo k preťaženiu.

čierna

Čierna nie je nástroj na analýzu linterov alebo kódov, ale nástroj na presadzovanie štýlu ako spôsobu zabezpečenia lepšej kvality kódu. Z tohto dôvodu pohodlne sedí spolu s ostatnými tu opísanými nástrojmi, pretože je to spôsob, ako sa preventívne vyhnúť mnohým základným chybám v štýle.

Čierna je popisovaná ako „nekompromisný formátovač kódu“ - nekompromisná, pretože okrem dĺžky riadku nemá nastaviteľné možnosti. Čierne preformátuje kód v jazyku Python na jedinečný, konzistentný a čitateľný štýl, ktorý vychádza z interných pravidiel pre riešenie zložitých problémov, ako sú výrazy viacerých riadkov, takže aj tie sa preformátujú konzistentne.

Jednou z výhod, ktorú ponúka čierna farba, je to, že rieši všetky spory týkajúce sa formátovania, takže eliminuje „hromadné ukladanie“ a tiež znižuje produkciu linteru. Nemusíte polemizovať o tom, ako formátovať kód pre projekt, alebo dokonca jeho časť robiť ručne. Stačí použiť čierny a skončíte s ním; môžete dokonca nakonfigurovať veľa IDE na automatické formátovanie kódu pomocou Black. Ďalšou reklamovanou výhodou je, že robígit zaviaže čistejšie, pretože znižuje počet zmien, ktoré sa v danom súbore vykonajú.

Najlepšie pre: Šľahanie kódových báz do základnej štylistickej zhody hromadne.

Ako urobiť viac s Pythonom:

  • Ako pracovať s dátovým typom zoznamu Python
  • Ako zabaliť aplikácie v Pythone s Aktovkou BeeWare
  • Ako bežať Anakondu bok po boku s ostatnými Pytónmi
  • Ako používať dátové triedy Pythonu
  • Začnite s asynchronizáciou v Pythone
  • Ako používať asyncio v Pythone
  • 3 kroky na generálnu opravu asynchrónneho kódu Python
  • Ako používať program PyInstaller na vytvorenie spustiteľných súborov Pythonu
  • Výukový program pre Cython: Ako zrýchliť Python
  • Ako inteligentne nainštalovať Python
  • Ako spravovať projekty Pythonu pomocou Poetry
  • Ako spravovať projekty Pythonu pomocou Pipenv
  • Virtualenv a venv: Vysvetlenie virtuálnych prostredí Pythonu
  • Python virtualenv a venv robí a nerobí
  • Vysvetlenie vlákien a podprocesov v jazyku Python
  • Ako používať debugger Pythonu
  • Ako používať timeit na profilovanie kódu Pythonu
  • Ako používať cProfile na profilovanie kódu Pythonu
  • Ako previesť Python na JavaScript (a späť)
$config[zx-auto] not found$config[zx-overlay] not found