Ohjelmointi

Python-tyyli: 5 työkalua Python-koodin puhdistamiseen

Teoriassa kaikki Python-koodit ovat kunnossa, kunhan ne ovat syntaktisesti oikein ja toimivat tarkoitetulla tavalla. Käytännössä haluat omaksua yhtenäisen tyylin kaikissa projekteissasi, mieluiten Pythonin omien tyylisuositusten ohjaamana. Hyvä uutinen on, että sinun ei tarvitse tehdä tätä käsin. Python-ekosysteemi sisältää erilaisia ​​työkaluja, erittäin tarkasta laaja-alaiseen, sen varmistamiseksi, että Python-lähdekoodi noudattaa tyyliin liittyviä käytäntöjä.

Tässä artikkelissa tarkastelemme neljää suosittua työkalua Python-koodityylien tarkistamiseksi sekä yhtä koodin alustamisen johdonmukaisuudesta. Python IDE: t, kuten PyCharm tai Visual Studio Code, tukevat niitä joko luonnollisesti tai laajennuksella, joten ne voidaan helposti integroida kehitystyön kulkuun.

Pycodestyle

PEP 8 on asiakirja, joka kertoo Pythonin koodauskäytännöt - kaiken siitä, käytetäänkö sarkaimia tai välilyöntejä sisennykseen (käytä neljää välilyöntiä, ongelma ratkaistu) ja muuttujien ja objektien nimeämiseen. Pycodestyle on Python-moduuli, joka tarkistaa Python-koodin PEP 8 -suositusten perusteella ja toimittaa raportin siitä, missä analysoitu koodi on poissa.

Pycodestyle ei tarjoa automaattisia korjauksia ongelmiin; se on sinussa. Mutta Pycodestyle on erittäin konfiguroitavissa, jolloin voit estää tietyntyyppisiä virheitä tai jäsentää vain tiettyjä tiedostoja lähdepuussa. Ja melkein jokainen Python-tuella varustettu IDE tukee myös Pycodestyle-tekniikkaa, joten se on helppo valinta yleiseen yhteensopivuuteen, ellei toiminnallisuuksiin.

Monet Python-koodisintterit voivat toimia moduuleina Pythonissa, eikä Pycodestyle ole poikkeus. Voit käyttää sitä koodin vahvistamiseen ohjelmallisesti, esimerkiksi osana testipakettia.

Paras:PEP 8 -yhteensopivuuden perustarkastus.

Autopep 8

Autopep8 jatkaa, missä Pycodestyle lähtee. Se käyttää Pycodestyle-ohjelmaa määrittääkseen, mitä muutoksia on tehtävä, ja muotoilee koodin uudelleen vastaamaan annettuja ehdotuksia. Olemassa olevat tiedostot voidaan muotoilla uudelleen tai kirjoittaa uusiin tiedostoihin. Autopep8 korjaa myös joukon muita ongelmia, jotka voivat hiipiä, kuten puhdistaa Python 2: sta Python 3: ksi muunnettu koodi tai tiedostot, joissa on sekoitettuja rivinpäätemerkkejä. Ja Autoprep8: ta voidaan käyttää ohjelmallisesti muotoilemaan merkkijonoina toimitettua koodia.

Paras: Muunnetaan tiedostot PEP-8-yhteensopiviksi.

Hiutale 8

Flake8 kääri useita Python-nukkaus- ja koodityyppisiä työkaluja yhteen pakettiin. Yhdessä PyFlakesin kanssa, joka käyttää syntaksitarkistusta perivirheiden havaitsemiseen, ja Pycodestyle-toiminnasta, josta keskustelimme edellä, Flake8 tarjoaa ylimääräisen työkalun projektin "syklomaattisen monimutkaisuuden" - eli ohjelmasta löydettyjen itsenäisten koodipolkujen määrän - tarkistamiseen . (Syklomaattinen monimutkaisuus on mahdollisesti hyödyllinen mittari, jos haluat esimerkiksi estää perusmoduulin muuttumisen liian epämääräiseksi.) Jokaisen analyysin lopussa Flake8 toimittaa prosenttipistemäärän analysoidun koodin yleisestä laadusta, kätevä tapa saada nopeasti käsitys siitä, mitkä koodikannan osat ovat ongelmallisimpia.

Flake8: lla on myös plug-in-järjestelmä, joten nukkaus voidaan yhdistää Git-sitoumuksiin tai muihin automaattisiin toimiin - esimerkiksi ongelmallisen koodin syöttämiseksi uudelleenlevyyn.

Paras:Arvioidaan yleinen koodin laatu erityisillä suosituksilla.

Pylintti

Pylint on luultavasti yleisimmin käytetty ja tuettu Python-linteri siellä. Kuten muutkin, se etsii virheitä ja poikkeamia koodausstandardeista Python-koodissasi ja tarjoaa muutoksia näiden virheiden korjaamiseen.

Pylint on myös kiistatta eniten täydentävä koodin tarkistajista siinä mielessä, että se voi varoittaa sinua monista koodisi ongelmista, joista jotkut eivät ehkä edes ole merkityksellisiä omassa kontekstissasi. Tulokset voivat olla yksityiskohtaisia, mutta ne voidaan myös räätälöidä vastaamaan tietyn projektin omituisuuksia.

Pylint etsii viittä asteittain ongelmallisempaa aiheluokkaa. "Yleissopimukset" ovat PEP 8: n tai muiden Pythonin yhdenmukaisuussääntöjen vastaisia. Refaktorit tarkoittavat koodihajuja, yleisiä virheitä tai koodia, joka voidaan muokata tehokkaammaksi tai vähemmän sekavaksi, kuten syklinen tuonti tai tiedostot, joissa on liian monta samanlaista riviä ja jotka voidaan tiivistää yhteiseksi toiminnoksi. "Varoitukset" ovat Python-kohtaisia ​​asioita, kuten tavoittamaton koodi (kaikki a: n jälkeenpalata funktiossa) tai luokista puuttuu__sen sisällä__ menetelmä. "Virheet" ovat todellisia koodivirheitä, kuten määrittelemättömät muuttujat, ja "kohtalokkaat" ongelmat estävät Pylintiä toimimasta edes.

Jälleen, mikä tekee Pylintistä sekä hyödyllisimmän että raskaimman painon, on sen antaman palautteen määrä. Hyvä uutinen on, että niille, jotka haluavat virittää sen, Pylintin sanallisuutta ja tarkkuutta voidaan muokata projektikohtaisesti tai jopa tiedostokohtaisesti. Lisäksi voit hyödyntää useita Pylint-laajennuksia, jotka lisäävät tietyntyyppisiä tarkistuksia, kuten liian monimutkaisen koodin (pitkätjosvanhentuneiden sisäänrakennettujen laitteiden nukkaaminen.

Paras:Koodin laadunvalvonta keittimestä mutteriin olettaen, että et halua säätää sen asetuksia ylikuormituksen välttämiseksi.

Musta

Musta ei ole nukka- tai koodianalyysityökalu, mutta työkalu tyylin valvomiseksi keinona varmistaa parempi koodin laatu. Tästä syystä se istuu mukavasti muiden tässä kuvattujen työkalujen rinnalla, koska se on tapa välttää ennaltaehkäisevästi monia tyylityypin virheitä.

Musta on kuvattu "tinkimättömäksi koodin muotoilijaksi" - tinkimätön, koska sillä ei ole asetettavia vaihtoehtoja paitsi viivan pituus. Musta muotoilee Python-koodin uudelleen yksikköön, yhtenäiseksi ja luettavaksi tyyliksi, joka perustuu sisäisiin sääntöihin hankalien ongelmien, kuten monirivisten lausekkeiden, käsittelemiseksi, joten jopa ne muotoillaan uudelleen johdonmukaisesti.

Yksi mainituista eduista Blackin käytössä on, että se ratkaisee kaikki muotoilua koskevat kiistat, joten eliminoi "bikeshedding" -ominaisuuden ja tekee myös sintteritulostuksesta vähemmän äänekästä. Sinun ei tarvitse kiistellä siitä, kuinka muotoilla koodi projektille, tai edes tehdä siitä suuri osa manuaalisesti. Käytät vain mustaa ja olet valmis sen kanssa; voit jopa määrittää monet IDE: t muotoilemaan koodin automaattisesti mustalla. Toinen väitetty etu on, että se tekeegit sitoutuu puhtaampaan, koska se vähentää tiettyyn tiedostoon tehtävien muutosten määrää.

Paras: Koodipohjien piiskaaminen tyylilliseksi perusmukavuudeksi massoittain.

Kuinka tehdä enemmän Pythonilla:

  • Kuinka työskennellä Python-luettelotietotyypin kanssa
  • Kuinka pakata Python-sovellukset BeeWare-salkulla
  • Kuinka ajaa Anacondaa vierekkäin muiden pythonien kanssa
  • Kuinka käyttää Python-tietoluokkia
  • Aloita asynkronointi Pythonissa
  • Asyncion käyttäminen Pythonissa
  • 3 vaihetta Pythonin asynkroniseen huoltoon
  • Kuinka käyttää PyInstalleria Python-suoritettavien tiedostojen luomiseen
  • Cython-opetusohjelma: Kuinka nopeuttaa Pythonia
  • Kuinka asentaa Python älykkäästi
  • Kuinka hallita Python-projekteja Poetryn avulla
  • Kuinka hallita Python-projekteja Pipenv: llä
  • Virtualenv ja venv: Python-virtuaaliympäristöt selitetty
  • Python virtualenv ja venv do and don'ts
  • Python-ketjuttaminen ja aliprosessit on selitetty
  • Kuinka käyttää Python-virheenkorjainta
  • Kuinka käyttää timeit Python-koodin profilointiin
  • CProfilen käyttäminen Python-koodin profilointiin
  • Kuinka muuntaa Python JavaScriptiksi (ja takaisin)
$config[zx-auto] not found$config[zx-overlay] not found