Kā automātiski formatēt Python kodu ar melnu

Python koda rakstīšana ir viena lieta, un koda rakstīšana labā formātā ir cita lieta. Jaunākie programmētāji bieži pievērš uzmanību tam, lai pārliecinātos, ka viņu kods darbojas, un aizmirst, ka tas ir pareizi formatēts.

Ja jūs rakstāt nelielu programmu (ar 1000 kodu rindām), iespējams, jūs varat atbrīvoties, noformējot kodu.

Bet, programmām kļūstot arvien sarežģītākām, tās kļūst arvien grūtāk saprast. Kādā brīdī (apmēram 15 000 koda rindiņu) kļūst grūtāk saprast kodu, kuru pats esat uzrakstījis.

Atšķirība starp darbu ar labi formatētu kodu un darbu ar slikti formatētu kodu ir tāda pati kā atšķirība starp dzīvošanu pilī un dzīvi netīrā mājā.

Kāpēc ir svarīgi formatēt pitona kodu?

Lasāmība

Koda formatēšana palīdzēs efektīvi lasīt kodu . Tas izskatās organizētāk, un, kad kāds apskatīs jūsu kodu, viņiem radīsies labs iespaids.

Tas palīdzēs jūsu kodēšanas intervijās

Kad esat kodēšanas intervijā, dažkārt intervētājiem būs vienalga, vai pareizi formatējat kodu. Ja esat aizmirsis veikt šo formatēšanu, jūs varat zaudēt darba iespējas tikai slikti formatētā koda dēļ.

Komandas atbalsts

Koda formatēšana kļūst svarīgāka, kad strādājat komandā . Vairāki cilvēki, iespējams, strādās pie tā paša programmatūras projekta, un jūsu uzrakstītais kods ir jāsaprot jūsu komandas biedriem. Pretējā gadījumā kļūst grūtāk strādāt kopā.

Tas ļauj viegli pamanīt kļūdas

Slikti formatēts kods var ļoti, ļoti grūti pamanīt kļūdas vai pat strādāt pie programmas. Uz to ir arī vienkārši patiešām briesmīgi. Jūsu acīm tas ir nodarījums.

Pīlints un pārsla8

Lielākajai daļai Python izstrādātāju patīk izmantot Pylint vai Flake8, lai pārbaudītu, vai viņu kodā nav kļūdu un stila rokasgrāmatas.

Pylint ir rīks, kas pārbauda, ​​vai Python nav kļūdu. Tas mēģina ieviest kodēšanas standartu un meklē koda smakas. Tas var arī meklēt noteiktas veida kļūdas, var ieteikt ieteikumus par to, kā konkrētus blokus var atjaunot, un var piedāvāt informāciju par koda sarežģītību.

Flake8 ir Python bibliotēka, kas aptver PyFlakes , Pycodestyle un Ned Batchelder McCabe skriptu . Tas ir lielisks rīku komplekts, lai pārbaudītu koda bāzi pēc kodēšanas stila (PEP8) , programmēšanas kļūdām, piemēram, “bibliotēka importēta, bet neizmantota”, “nenoteikts nosaukums” un koda, kas nav ievilkts.

Problēma ir tāda, ka šie rīki ziņo tikai par problēmām, kuras viņi identificē avota kodā, un ļauj tos novērst Python izstrādātājiem!

Bet ja mums būtu rīks, kas vienlaikus varētu identificēt un atrisināt problēmu? Melns ir rīks, kas ļauj vienlaikus identificēt kļūdas un formatēt pitona kodu . Tādējādi tas padara jūs produktīvāku.

Ievads melnajā

No projekta README:

Izmantojot Black , jūs piekrītat nodot kontroli pār roku formatēšanas sīkumiem. Pretī Melnais dod jums ātrumu, determinismu un brīvību no pikodila nokaitēšanas par formatēšanu. Jūs ietaupīsiet laiku un garīgo enerģiju svarīgākiem jautājumiem.

Black var pārformatēt visu failu vietā atbilstoši Black code stilam. Tas palīdz jūsu smadzenēm koncentrēties uz problēmu, kuru vēlaties atrisināt, un kodēt risinājumus, nevis novērst uzmanību no koda struktūras un nelielām stilistiskām atšķirībām.

Tātad, redzēsim, kā to izmantot.

Instalējiet Black

Melnu var uzstādīt, palaižot pip install black. Lai to palaistu, ir nepieciešams Python 3.6.0+. Kad Black ir instalēts, jūsu čaulā būs pieejams jauns komandrindas rīks, ko sauc par melno, un jūs esat gatavs sākt!

Lai uzreiz sāktu ar saprātīgiem noklusējumiem, izvēlieties formatējamo pitona failu un pēc tam terminālā ierakstiet melno faila nosaukumu . Tad Melns formatēs jūsu pitona failu.

Tagad mēs redzēsim, ko Melnais var mums palīdzēt.

Formatējiet vienu failu

Apskatīsim šo vienkāršo piemēru: šeit ir manas divas pitona funkcijas manā pitona failā ar nosaukumu sample_code.py.

Jūs varat izmantot black sample_code.pyterminālā, lai mainītu formātu. Pēc Black palaišanas redzēsiet šādu izvadi:

Tad varat atvērt sample_code.py, lai skatītu formatētu pitona kodu:

Tagad Python kods ir formatēts, un tas ir vairāk lasāms.

Formatēt vairākus failus

Lai formatētu vairāk nekā vienu pitona failu, ierakstiet black folder_name/terminālā.

Trīs pitona faili mapē ar nosaukumu python_with_black ir pārformatēti.

Failu formatēšanas pārbaude

Ja nevēlaties, lai Black maina jūsu failu, bet vēlaties uzzināt, vai Black uzskata, ka fails būtu jāmaina, varat izmantot kādu no šīm komandām:

black --check .: Tas pārbaudīs, kuru (-us) pitona failu (-us) var formatēt pašreizējā mapē (bet faktiski nemaina pitona failu (-us)).

black --check --diff file_name.py : Tas parāda, kas failam ir jādara, bet nemaina failu.

Mainīt rakstzīmju skaitu rindā

Ņemiet vērā, ka melnā krāsa pēc līnijas garuma pēc noklusējuma ir 88 rakstzīmes, taču to var mainīt, izmantojot opciju “-l” vai “- -line-length”.

Piemēram, lai pārietu uz 60 rakstzīmes: black -l 60 python_file.py.

Melns Jupyter piezīmju grāmatiņā

Jupyter piezīmjdatoru lietotājiem jūs joprojām varat automātiski formatēt savu pitona kodu, izmantojot šo vienkāršo paplašinājumu ar nosaukumu Jupyter Black. Šis paplašinājums pārformatē / izdala kodu piezīmjdatora koda šūnā ar melnu.

Jupyter Black pagarinājums nodrošina

  • Rīkjoslas poga.
  • Tastatūras saīsne pašreizējās koda šūnas pārformatēšanai (noklusējums: Ctrl-B).
  • Tastatūras īsceļš visu koda šūnu formatēšanai (noklusējums: Ctrl-Shift-B).

Instalējiet Jupyter Black

Vispirms pārliecinieties, vai esat instalējis jupyter-contrib-nbextensions un black, pēc tam izpildiet šīs komandas.

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

Pēc tam iespējojiet paplašinājumu, palaižot:

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

Tagad jūs varat sākt formatēt savu pitona kodu katrā piezīmju grāmatiņas šūnā.

Vispirms atlasiet piezīmju grāmatiņas šūnu, kuru vēlaties formatēt, un noklikšķiniet uz paplašinājuma pogas ar nosaukumu Melns.

Pēc tam noklikšķiniet uz pogas Jupyter Black:

Redaktora integrācija

Jūs varat integrēt Black ar iecienītākajiem redaktoriem. Pašlaik Black atbalsta PyCharm / IntelliJ IDEA, Wing IDE, Vim, Visual Studio Code, Sublime Text 3, Atom / Nuclide, Kakoune un Thonny. Izpildiet šeit sniegtos norādījumus, lai integrētu Black ar iecienītāko redaktoru.

Ja vēlaties uzzināt vairāk par Black, iesaku noskatīties PyCon 2019 sarunu ar Lukašu Langu.

Ja uzzinājāt kaut ko jaunu vai jums patika lasīt šo rakstu, lūdzu, dalieties tajā, lai citi to varētu redzēt. Līdz tam tiekamies nākamajā ierakstā! Ar mani var sazināties arī vietnē Twitter @Davis_McDavid.