A Python-kód automatikus formázása feketével

A Python kód írása egy dolog, a kód jó formátumba írása pedig egy másik dolog. A junior programozók gyakran arra törekszenek, hogy megbizonyosodjanak a kódjuk működéséről, és közben megfeledkeznek a kód megfelelő formázásáról.

Ha kis programot írsz (1000 sornyi kóddal), akkor valószínűleg megúszhatod a kód formázása nélkül.

De ahogy a programok egyre összetettebbé válnak, egyre nehezebb megérteni őket. Egy bizonyos ponton (körülbelül 15 000 kódsor) nehezebb megérteni azt a kódot, amelyet maga írt.

A jól formázott kóddal végzett munka és a rosszul formázott kód közötti munka közötti különbség olyan, mint a különbség a palotában élés és a piszkos házban élés között.

Miért fontos a python kód formázása?

Olvashatóság

A kód formázása segít a kód hatékony olvasásában . Szervezettebbnek tűnik, és ha valaki megnézi a kódját, jó benyomást fog szerezni.

Segíteni fog a kódolási interjúiban

Amikor kódoló interjúban van, valamikor az interjúztatóknak fontos lesz, hogy megfelelően formázzák-e a kódot. Ha elfelejtette elvégezni ezt a formázást, elveszítheti álláslehetőségeit, csak a rosszul formázott kód miatt.

Csapat támogatás

A kód formázása fontosabbá válik, ha csapatban dolgozik . Valószínűleg többen dolgoznak ugyanazon a szoftver projekten, és az általad írt kódot meg kell értenie a csapattársainak. Különben nehezebbé válik a közös munka.

Ez megkönnyíti a hibák észlelését

A rosszul formázott kód nagyon-nagyon megnehezítheti a hibák észlelését vagy akár egy programon való munkát. Azt is nagyon szörnyű nézni. Sértés ez a szemed számára.

Pylint és Flake8

A legtöbb Python fejlesztő élvezi a Pylint vagy a Flake8 használatát a kód hibáinak ellenőrzésére és a stílus útmutatóira.

A Pylint egy olyan eszköz, amely ellenőrzi a Python hibáit. Megpróbál érvényesíteni egy kódolási szabványt, és megkeresi a kódszagokat. Bizonyos típusú hibákat is kereshet, javaslatokat javasolhat az egyes blokkok visszafejlesztéséről, és részleteket kínálhat a kód összetettségéről.

A Flake8 egy Python könyvtár, amely beburkolja a PyFlakes , a pycodestyle és Ned Batchelder McCabe szkriptjét . Remek eszközkészlet a kódalap kódolási stílus (PEP8) , programozási hibák, például a „könyvtár importált, de fel nem használt”, a „meghatározatlan név” és a nem behúzott kód ellenőrzésére.

A probléma az, hogy ezek az eszközök csak azokról a problémákról számolnak be, amelyeket a forráskódban azonosítanak, és a Python fejlesztőkre hárítják a terhet, hogy kijavítsák őket!

De mi lenne, ha lenne egy eszközünk, amely egyszerre képes azonosítani és megoldani a problémát? A Black egy olyan eszköz, amely lehetővé teszi a hibák azonosítását és a python-kód egyidejű formázását . Így produktívabbá tesz.

Bevezetés a feketébe

A README projektből:

A Black használatával elfogadja, hogy átadja a kézi formázás apróságainak ellenőrzését. Cserébe a fekete gyorsaságot, determinizmust és mentességet nyújt a formázás iránti nyaggatásától. Időt és mentális energiát spórol meg fontosabb ügyekben.

A Black újra formázhatja a teljes fájlt a fekete kód stílusának megfelelően. Segít az agyának a megoldani kívánt problémára és a megoldások kódolására koncentrálni, ahelyett, hogy elterelné a figyelmét a kódstruktúra és a kisebb stílusbeli különbségek.

Tehát nézzük meg, hogyan kell használni.

Telepítse a Black alkalmazást

A Black futtatásával telepíthető pip install black. A futtatásához Python 3.6.0+ szükséges. A Black telepítése után egy új, fekete nevű parancssori eszköz áll a rendelkezésére a héjában, és készen áll a kezdésre!

Az értelmes alapértelmezett beállítások megkezdéséhez válassza ki a formázni kívánt python fájlt, majd írja be a fekete fájlnevet.py a terminálba. Ezután Black formázza a python fájlját.

Most meglátjuk, mit segíthet nekünk Fekete.

Formázzon egyetlen fájlt

Nézzük meg ezt az egyszerű példát: itt van a két python funkcióm a python fájlomban, amelynek neve: sample_code.py.

A black sample_code.pyterminálon megváltoztathatja a formátumot. A Black futtatása után a következő kimenet jelenik meg:

Ezután megnyithatja a sample_code.py fájlt a formázott python kód megtekintéséhez:

A Python kód mostantól formázva van, és jobban olvasható.

Több fájl formázása

Több python fájl formázásához írjon black folder_name/a terminálba.

A python_with_black nevű mappában három python fájlt alakítottak át.

A fájlok formázása ellenőrzése

Ha nem szeretné, hogy a Black megváltoztassa a fájlt, de azt szeretné tudni, hogy Black szerint-e egy fájlt meg kell változtatni, használhatja a következő parancsok egyikét:

black --check .: Ez ellenőrzi, hogy mely python fájl (ok) formázható (k) az aktuális mappában (de valójában nem módosítja a python fájl (oka) t).

black --check --diff file_name.py : Ez megmutatja, mit kell tennie a fájlban, de nem módosítja a fájlt.

Változtassa meg a karakterek számát soronként

Ne feledje, hogy a Black alapértelmezés szerint 88 karakter hosszúságú, de ezt megváltoztathatja a „-l” vagy „- -line-length” opcióval.

Például, hogy módosítsa a 60 karakter: black -l 60 python_file.py.

Fekete a Jupyter Notebookban

A Jupyter notebook felhasználók számára továbbra is automatikusan formázhatja a python kódját ezzel az egyszerű Jupyter Black nevű kiterjesztéssel. Ez a kiterjesztés feketével formázza / szépíti újra a notebook kódcella kódját.

A Jupyter Black kiterjesztés biztosítja

  • Eszköztár gomb.
  • Billentyűparancs az aktuális kódcella újraformázásához (alapértelmezett: Ctrl-B).
  • Billentyűparancs a teljes kódcellák átformázásához (alapértelmezett: Ctrl-Shift-B).

Telepítse a Jupyter Black alkalmazást

Először ellenőrizze, hogy telepítette-e a jupyter-contrib-nbextensions és a black programot, majd futtassa a következő parancsokat.

jupyter nbextension install //github.com/drillan/jupyter-black/archive/master.zip — user

Ezután futtatásával engedélyezze a kiterjesztést:

jupyter nbextension enable jupyter-black-master/jupyter-black 

Most megkezdheti a python-kód formázását az egyes notebook cellákban.

Először válassza ki azt a notebook cellát, amelybe formázni szeretné a python kódját, majd kattintson a Fekete nevű kiterjesztés gombra.

Ezután kattintson a Jupyter Black gombra:

Szerkesztő integrációja

Integrálhatja Black kedvenc szerkesztőivel. Jelenleg a Black támogatja a PyCharm / IntelliJ IDEA, Wing IDE, Vim, Visual Studio Code, Sublime Text 3, Atom / Nuclide, Kakoune és Thonny szolgáltatásokat. Kövesse az itt található utasításokat a Black integrálásához a kedvenc szerkesztőjével.

Ha többet szeretne megtudni a Blackről, javasoljuk, hogy nézze meg a PyCon 2019 beszélgetést Łukasz Langa.

Ha valami újat tanult vagy szívesen olvasta ezt a cikket, kérjük, ossza meg, hogy mások is láthassák. Addig találkozunk a következő bejegyzésben! A Twitteren @Davis_McDavid is elérhetõ.