Programiranje

Slog Python: 5 orodij za čiščenje kode Python

V teoriji je katera koli koda Pythona v redu, če je skladenjsko pravilna in deluje, kot je predvideno. V praksi želite v svojih projektih sprejeti dosleden slog, po možnosti tisti, ki ga vodijo Pythonova lastna priporočila za slog. Dobra novica je, da vam tega ni treba početi ročno. Ekosistem Python vsebuje raznoliko orodje, od zelo osredotočenega do širokega, da zagotovi, da se izvorna koda Pythona drži slogovnih konvencij.

V tem članku bomo preučili štiri priljubljena orodja za preverjanje slogov kode Python in eno za skladno preoblikovanje kode. IDE-ji Python, kot sta PyCharm ali Visual Studio Code, jih podpirajo bodisi izvirno bodisi s pripono, tako da jih je mogoče zlahka vključiti v vaš razvojni potek dela.

Pycodestyle

PEP 8 je dokument, v katerem so zapisane Pythonove konvencije o kodiranju - vse od tega, ali naj se pri zamikih uporabljajo zavihki ali presledki (uporabite štiri presledke, težava rešena) do tega, kako poimenovati spremenljivke in predmete. Pycodestyle je modul Python, ki preverja kodo Pythona glede na priporočila PEP 8 in pripravi poročilo o tem, kje v analizirani kodi ni specifikacij.

Pycodestyle ne ponuja samodejnih popravkov za težave; to je na tebi. Toda Pycodestyle je zelo nastavljiv, kar omogoča zatiranje določenih vrst napak ali razčlenitev samo določenih datotek v izvornem drevesu. In skoraj vsak IDE s podporo za Python podpira tudi Pycodestyle, zato je enostavna izbira za univerzalno združljivost, če že ne funkcionalnost.

Številni povezovalniki kode Python lahko delujejo kot moduli v Pythonu in Pycodestyle ni nobena izjema. Uporabite ga lahko za programsko preverjanje kode, na primer kot del testne zbirke.

Najboljše za:Osnovno preverjanje skladnosti PEP 8.

Autopep8

Autopep8 nadaljuje tam, kjer Pycodestyle konča. Uporablja Pycodestyle za določanje sprememb, ki jih je treba izvesti, nato pa kodo preoblikuje v skladu s predlaganimi predlogi. Obstoječe datoteke je mogoče na novo formatirati ali zapisati v nove datoteke. Autopep8 odpravi tudi vrsto drugih težav, ki se lahko prikradejo, na primer čiščenje kode, pretvorjene iz Python 2 v Python 3, ali datotek z mešanimi označevalniki konca vrstice. In Autoprep8 se lahko programsko uporablja za preoblikovanje kode v obliki nizov.

Najboljše za: Pretvorba datotek v skladnost z PEP-8.

Flake8

Flake8 v enem paketu zaokroži več orodij za povezovanje in kodo v slogu Pythona. Skupaj s PyFlakes, ki uporablja preverjanje sintakse za odkrivanje osnovnih napak, in Pycodestyle, o katerem smo razpravljali zgoraj, Flake8 ponuja dodatno orodje za preverjanje "ciklomatske zapletenosti" projekta - to je število neodvisnih kodnih poti, najdenih v programu . (Ciklomatična kompleksnost je potencialno uporabna metrika, če želite, da osnovni modul na primer prepreči, da bi postal preveč nebazičen.) Na koncu vsake analize Flake8 prikaže metriko percentila za splošno kakovost analizirane kode, kar je priročno. način, kako hitro pridobiti idejo o tem, kateri deli kodne baze so najbolj problematični.

Flake8 ima tudi vtični sistem, tako da je povezovanje mogoče povezati z Gitovimi prevzemi ali drugimi avtomatiziranimi dejanji - na primer za dovajanje problematične kode v program za ponovno oblikovanje.

Najboljše za:Ocena splošne kakovosti kode s posebnimi priporočili.

Pylint

Pylint je verjetno najpogosteje uporabljena in podprta povezava Pythona tam zunaj. Tako kot drugi tudi v vaši kodi Python išče napake in odstopanja od standardov kodiranja in ponuja spremembe, kako jih odpraviti.

Verjetno je največ tudi Pylint kompletist pregledovalnikov kod v smislu, da vas lahko opozori na veliko težav z vašo kodo, od katerih nekatere morda sploh niso pomembne v vašem določenem kontekstu. Rezultati so lahko podrobni, lahko pa so tudi prilagojeni posebnostim določenega projekta.

Pylint išče pet postopoma bolj problematičnih razredov vprašanj. "Konvencije" pomenijo kršitve PEP 8 ali drugih pravil o skladnosti v Pythonu. »Refaktorji« označujejo vonje kode, pogoste napake ali kodo, ki bi jo lahko predelali tako, da bi bila bolj učinkovita ali manj zmedena, na primer ciklični uvoz ali datoteke s preveč podobnimi vrsticami, ki bi jih lahko strnili v skupno funkcijo. "Opozorila" so težave, povezane s Pythonom, na primer nedosegljiva koda (vse povrnitev v funkciji) ali razredi, v katerih manjka__v__ metoda. "Napake" so dejanske napake kode, na primer nedoločene spremenljivke, "usodne" težave pa preprečujejo, da bi se Pylint sploh zagnal.

Še enkrat, zaradi česar je Pylint najbolj uporaben in najtežji, je količina povratnih informacij, ki jih daje. Dobra novica je, da je za tiste, ki jo želijo uglasiti, Pylintovo dvoumnost in razdrobljenost mogoče spremeniti na projekt ali celo na datoteko. Poleg tega lahko črpate iz številnih vtičnikov Pylint, ki dodajajo posebne vrste pregledov, na primer za preveč zapleteno kodo (dolge verigečeitd.) ali obloge za opuščene vgrajene elemente.

Najboljše za:Nadzor kakovosti juhe do oreščkov za kodo, ob predpostavki, da ne želite prilagoditi njenih nastavitev, da se izognete preobremenitvi.

Črna

Črna barva ni orodje za povezovanje ali analizo kode, ampak orodje za uveljavljanje sloga kot načina za zagotavljanje boljše kakovosti kode. Iz tega razloga se udobno namesti poleg drugih tukaj opisanih orodij, saj se tako preventivno izogne ​​številnim osnovnim slogovnim napakam.

Črna je opisana kot "brezkompromisni oblikovalnik kode" - brezkompromisna, ker nima nastavljivih možnosti, razen dolžine vrstice. Črna preoblikuje kodo Python v edinstven, dosleden in berljiv slog, pri čemer se opira na notranja pravila za reševanje zapletenih problemov, kot so večvrstični izrazi, zato se tudi ti dosledno preoblikujejo.

Ena od priznanih prednosti uporabe črne je ta, da rešuje vse spore glede oblikovanja, tako da odpravlja "bikeshedding" in naredi izhod linterja tudi manj hrupen. Ni vam treba prepirati, kako oblikovati kodo za projekt ali celo veliko narediti ročno. Samo uporabite črno in končate z njo; celo številne IDE lahko konfigurirate za samodejno formatiranje kode s črno. Druga trdjena prednost je ta, da naredigit zaveže čistejše, saj zmanjša število sprememb, ki se izvedejo v kateri koli datoteki.

Najboljše za: Šifriranje baznih kod v osnovno slogovno skladnost množično.

Kako narediti več s Pythonom:

  • Kako delati s podatkovnim tipom seznama Python
  • Kako zapakirati aplikacije Python v aktovko BeeWare
  • Kako zagnati Anacondo vzporedno z drugimi Pythoni
  • Kako uporabljati podatkovne razrede Python
  • Začnite z async v Pythonu
  • Kako uporabljati asyncio v Pythonu
  • 3 koraki do prenove async Pythona
  • Kako uporabiti PyInstaller za ustvarjanje izvršljivih datotek Python
  • Vadnica za Cython: Kako pospešiti Python
  • Kako namestiti Python na pameten način
  • Kako upravljati projekte Python s poezijo
  • Kako upravljati projekte Python s Pipenv
  • Virtualenv in venv: Razložena navidezna okolja Python
  • Python virtualenv in venv dela in ne sme
  • Razloženi navoji Python in podprocesi
  • Kako uporabljati razhroščevalnik Python
  • Kako uporabiti timeit za profiliranje kode Python
  • Kako uporabiti cProfile za profiliranje kode Python
  • Kako pretvoriti Python v JavaScript (in nazaj)
$config[zx-auto] not found$config[zx-overlay] not found