Programavimas

„Python“ stilius: 5 įrankiai, skirti išvalyti jūsų „Python“ kodą

Teoriškai bet koks „Python“ kodas yra tinkamas, jei jis sintaksiniu požiūriu yra teisingas ir veikia pagal paskirtį. Praktiškai jūs norite pritaikyti nuoseklų stilių savo projektuose, geriausia vadovautis paties „Python“ stiliaus rekomendacijomis. Gera žinia ta, kad nereikia to daryti rankomis. „Python“ ekosistemoje yra daugybė įrankių, pradedant nuo ypač susikaupusių iki plačios apimties, siekiant užtikrinti, kad „Python“ šaltinio kodas laikytųsi stiliaus konvencijų.

Šiame straipsnyje mes išnagrinėsime keturis populiarius „Python“ kodo stilių tikrinimo įrankius ir vieną, kad kodas būtų suformatuotas nuosekliai. „Python“ IDE, pvz., „PyCharm“ ar „Visual Studio Code“, palaiko juos natūraliai arba su plėtiniu, todėl juos galima lengvai integruoti į kūrimo darbo eigą.

Pikodaila

PEP 8 yra dokumentas, kuriame išdėstytos „Python“ kodavimo taisyklės - viskas, pradedant nuo to, ar įtraukiant reikia naudoti skirtukus, ar tarpus (naudoti keturis tarpus, išspręsta problema), iki to, kaip pavadinti kintamuosius ir objektus. „Pycodestyle“ yra „Python“ modulis, kuris patikrina „Python“ kodą pagal PEP 8 rekomendacijas ir pateikia ataskaitą, kur analizuojamas kodas neatitinka specifikacijų.

„Pycodestyle“ neteikia automatinių problemų taisymų; tai tau. Tačiau „Pycodestyle“ yra labai konfigūruojamas, leidžiantis užgniaužti tam tikrų tipų klaidas arba išanalizuoti tik tam tikrus šaltinio medžio failus. Beveik kiekvienas IDE su „Python“ palaikymu taip pat palaiko „Pycodestyle“, todėl tai yra lengvas pasirinkimas visuotiniam suderinamumui, jei ne funkcionalumui.

Daugelis „Python“ kodų sąsajų gali veikti kaip „Python“ moduliai, o „Pycodestyle“ nėra išimtis. Jį galite naudoti programiniam kodo patvirtinimui, pavyzdžiui, kaip testų rinkinio dalį.

Geriausia:Pagrindinis PEP 8 atitikties patikrinimas.

Autopep8

„Autopep8“ pasirenka ten, kur „Pycodestyle“ palieka. Jis naudoja „Pycodestyle“ nustatydamas, kokius pakeitimus reikia atlikti, tada performatuoja kodą, kad atitiktų pateiktus pasiūlymus. Esamus failus galima iš naujo suformatuoti vietoje arba įrašyti į naujus failus. „Autopep8“ taip pat išsprendžia daugybę kitų problemų, kurios gali šliaužti, pavyzdžiui, išvalyti kodą, konvertuotą iš „Python 2“ į „Python 3“, arba failus, kuriuose yra mišrių eilučių pabaigos žymeklių. „Autoprep8“ gali būti naudojamas programiškai, norint performatuoti kodą, pateiktą kaip eilutes.

Geriausia: Konvertuojami failai, kad jie atitiktų PEP-8.

8. dribsniai

„Flake8“ į vieną paketą suvynioja kelis „Python“ pūkavimo ir kodo stiliaus įrankius. Kartu su „PyFlakes“, kuris naudoja sintaksės tikrinimą pagrindinėms klaidoms aptikti, ir „Pycodestyle“, kurį aptarėme aukščiau, „Flake8“ pateikia papildomą įrankį projekto „cikliniam sudėtingumui“ patikrinti, t. Y. Programoje rastų nepriklausomų kodų kelių skaičių. . (Ciklomatinis sudėtingumas yra potencialiai naudinga metrika, jei norite, kad, pvz., Pagrindinis modulis netaptų pernelyg nepagrįstas.) Kiekvienos analizės pabaigoje „Flake8“ pateikia procentilės metriką, skirtą visai analizuojamo kodo kokybei, patogu būdas greitai suprasti, kurios kodų bazės dalys yra problemiškiausios.

„Flake8“ taip pat turi įskiepių sistemą, todėl pūkavimas gali būti derinamas su „Git“ įsipareigojimais ar kitais automatizuotais veiksmais, pavyzdžiui, norint perduoti probleminį kodą iš naujo.

Geriausia:Įvertinant bendrą kodo kokybę su konkrečiomis rekomendacijomis.

Pylintas

„Pylint“ yra turbūt plačiausiai naudojamas ir palaikomas „Python“ linteris. Kaip ir kiti, jis ieško klaidų ir nukrypimų nuo jūsų „Python“ kodo standartų ir siūlo pakeitimus, kaip šias klaidas ištaisyti.

Pylintas taip pat neabejotinai yra labiausiai užbaigtas kodo tikrintuvų, ta prasme, kad tai gali jus įspėti apie daugybę jūsų kodo problemų, kai kurios iš jų gali būti net neaktualios jūsų konkrečiame kontekste. Rezultatai gali būti išsamūs, tačiau taip pat gali būti pritaikyti, kad atitiktų konkretaus projekto ypatumus.

Pylintas ieško penkių palaipsniui problemiškesnių klausimų klasių. „Konvencijos“ yra PEP 8 ar kitų „Python“ nuoseklumo taisyklių pažeidimai. „Refaktoriai“ nurodo kodų kvapus, dažniausiai pasitaikančias klaidas ar kodą, kurį būtų galima perdirbti, kad būtų efektyvesnis ar mažiau painus, pvz., Ciklinis importas arba per daug panašių eilučių failai, kuriuos būtų galima sutelkti į bendrą funkciją. „Įspėjimai“ yra specifiniai „Python“ klausimai, pvz., Nepasiekiamas kodas (viskas po agrįžti funkcijoje) arba klasėse, kuriose nėra__init__ metodas. „Klaidos“ yra faktinės kodo klaidos, kaip ir neapibrėžti kintamieji, o „lemtingos“ problemos trukdo „Pylint“ net veikti.

Vėlgi, tai, kas daro „Pylint“ naudingiausią ir sunkiausią, yra jo teikiamų atsiliepimų kiekis. Geros naujienos yra tai, kad tiems, kurie nori ją sureguliuoti, Pylinto daugialypiškumą ir detalumą galima modifikuoti kiekvienam projektui ar net failui. Be to, galite pasinaudoti įvairiais „Pylint“ papildiniais, kurie prideda tam tikrų rūšių patikrinimus, pvz., Per sudėtingo kodo (ilgosjeis ir kt.) arba nebenaudojamų įmontuotų elementų pūkavimas.

Geriausia:Kodas kokybės kontrolė nuo sriubos iki riešutų, darant prielaidą, kad neprieštaraujate jo nustatymų pakeitimui, kad išvengtumėte perkrovos.

Juoda

Juoda spalva nėra tekstūros ar kodo analizės priemonė, bet stiliaus užtikrinimo priemonė, kaip būdas užtikrinti geresnę kodo kokybę. Dėl šios priežasties jis patogiai sėdi šalia kitų čia aprašytų įrankių, nes tai yra būdas išvengti daugelio pagrindinių stiliaus klaidų.

Juoda spalva apibūdinama kaip „bekompromisė kodo formatavimo priemonė“ - be kompromisų, nes ji neturi nustatomų parinkčių, išskyrus linijos ilgį. Juoda spalva performatuoja „Python“ kodą į vienaskaitą, nuoseklų ir įskaitomą stilių, remdamasi vidinėmis taisyklėmis, kaip tvarkyti sudėtingas problemas, pvz., Daugialypes išraiškas, todėl net ir jos nuosekliai performatuojamos.

Vienas įvardijamas „Black“ naudojimo pranašumas yra tai, kad jis išsprendžia visus ginčus dėl formatavimo, todėl pašalina „dviračių vežimą“ ir linterių išvestis taip pat tampa mažiau triukšminga. Jums nereikia ginčytis dėl to, kaip formatuoti projekto kodą ar net daug jo padaryti rankiniu būdu. Jūs tiesiog naudokitės juoda spalva ir būkite su ja susiję; netgi galite sukonfigūruoti daugelį IDE, kad jie automatiškai suformatuotų kodą naudodami „Black“. Kitas teigiamas pranašumas yra tas, kad jis darogit įsipareigoja švariau, nes tai sumažina bet kurio failo pakeitimų skaičių.

Geriausia: Kodų bazių išplakimas į pagrindinę stilistinę atitiktį masiškai.

Kaip padaryti daugiau su „Python“:

  • Kaip dirbti su „Python“ sąrašo duomenų tipu
  • Kaip supakuoti „Python“ programas su „BeeWare“ portfeliu
  • Kaip paleisti „Anaconda“ šalia kitų Pitonų
  • Kaip naudoti „Python“ duomenų klases
  • Pradėkite naudoti „Python“ asinchronizavimą
  • Kaip naudoti „asyncio“ Python
  • 3 žingsniai iki „Python“ asinchroninio remonto
  • Kaip naudoti „PyInstaller“, norint sukurti „Python“ vykdomuosius failus
  • „Cython“ pamoka: kaip pagreitinti „Python“
  • Kaip įdiegti „Python“ išmaniuoju būdu
  • Kaip valdyti „Python“ projektus naudojant „Poeziją“
  • Kaip valdyti „Python“ projektus naudojant „Pipenv“
  • „Virtualenv“ ir „venv“: paaiškintos „Python“ virtualios aplinkos
  • „Python virtualenv“ ir „venv do and donts“
  • Paaiškinta „Python“ sriegimas ir antriniai procesai
  • Kaip naudotis „Python“ derintuvu
  • Kaip naudoti „Timeit“, kad būtų galima nustatyti „Python“ kodą
  • Kaip naudoti „cProfile“ „Python“ kodui nustatyti
  • Kaip konvertuoti „Python“ į „JavaScript“ (ir dar kartą)
$config[zx-auto] not found$config[zx-overlay] not found