Oglas

Click je Python paket za pisanje sučelja naredbenog retka. Izrađuje prekrasnu dokumentaciju za vas i omogućuje vam izradu sučelja naredbenog retka u samo jednoj liniji koda. Ukratko: fantastično je i može pomoći u prebacivanju programa na višu razinu.

Evo kako možete to iskoristiti za oživljavanje svojih Python projekata.

Pisanje programa naredbenog retka bez klika

Programe naredbenog retka moguće je pisati bez klika, ali to zahtijeva više napora i puno više koda. Trebate analizirati argumente naredbenog retka, izvršiti provjeru valjanosti, razviti logiku za obradu različitih argumenata i sastaviti prilagođeni izbornik pomoći. Želite li dodati novu opciju? Tada ćete mijenjati funkciju pomoći.

Nema ništa loše u pisanju vlastitog koda, a to je odličan način da naučite Python, ali Click vam omogućuje da slijedite principe „Ne ponavljaj sebe“ (DRY). Bez klika, napisat ćete kôd koji je krhak i zahtijeva puno održavanja kad god se dogode bilo kakve promjene.

Evo jednostavnog sučelja naredbenog retka kodiranog bez klika:

instagram viewer
import sys. uvoz slučajnih def do_work (): funkcija za rukovanje naredbenog retka args = sys.argv args = args [1:] # Prvi element argova je naziv datoteke ako je len (args) == 0: print ('Nisi predao nijednu naredbu!') else: for a in args: if a == '--help': print ('Osnovni program naredbenog retka') print ('Options:') print ('- -pomoći -> pokazati ovaj osnovni meni pomoći. ') print (' --monty -> pokaži Monty Python citat. ') print (' --veg -> pokaži slučajno povrće ') elif a ==' --monty ': print (' Što je ovo, zatim? "Romanes eunt domus"? Ljudi zvani Romanes, oni idu, kuća? ') Elif a ==' --veg ': print (random.choice ([' Mrkva ',' Krompir ',' Repa '])) ostalo: print (' Neprepoznat argument. ') ako je __name__ ==' __main__ ': do_work ()
Primjer sučelja Python naredbenog retka

Tih 27 redaka Pythona djeluje dobro, ali su vrlo krhki. Svaka promjena koju napravite u svom programu trebat će vam mnogo drugog pratećeg koda da bi se promijenila. Ako promijenite naziv argumenta, morat ćete ažurirati informacije pomoći. Ovaj kôd može lako prerasti kontrolu.

Slijedi ista logika s klikom:

uvoz uvoz. uvesti nasumično @ click.command () @ click.option ('- monty', zadano = False, help = 'Pokaži Monty Python citat.') @ click.option ('- veg', zadano = netočno, pomoć = 'Prikaži slučajno povrće.') def do_work (monty, veg): Primjer osnovnog klika slijedit će vaše naredbe ako monty: print ('Što je to onda? "Romanes eunt domus"? Ljudi su se zvali Romanes, oni idu, kuća? ') Ako je veg: print (random.choice ([' mrkva ',' krumpir ',' orah ')) ako __name__ ==' __main__ ': do_work ()

Ovaj primjer klika provodi istu logiku u 16 redaka koda. Argumenti su za vas raščlanjeni i generiran je zaslon pomoći:

Python Click automatski generiran zaslon pomoći

Ova osnovna usporedba pokazuje koliko vremena i truda možete uštedjeti pomoću programa kao što je Click. Iako se sučelje naredbenog retka krajnjem korisniku može pojaviti isto, temeljni je kod jednostavniji i uštedjet ćete puno vremena kodiranja. Svake promjene ili ažuriranja koja napišete u budućnosti također će vidjeti znatna porasta vremena razvoja.

Početak rada s klikom za Python

Prije upotrebe Klika, to biste možda željeli konfigurirajte virtualno okruženje Naučite kako koristiti virtualno okruženje PythonaBez obzira jeste li iskusni Python programer ili tek započinjete, učenje kako postaviti virtualno okruženje bitno je za svaki Python projekt. Čitaj više . Ovo će zaustaviti vaše Python pakete u sukobu sa vašim sustavom Python ili drugim projektima na kojima možda radite. Mogli biste i vi isprobajte Python u svom pregledniku Isprobajte Python u svom pregledniku s ovim besplatnim internetskim interaktivnim školjkamaBez obzira prolazite li kroz ove Python primjere ili pregledavate osnove nizova i popisa, kôd možete isprobati pravo u svom pregledniku. Evo najboljih internetskih tumača Python-a koje smo pronašli. Čitaj više ako se želite igrati oko Pythona i Klika.

Na kraju, provjerite imate li verziju Python 3. Klik s Python verzijom 2 moguće je koristiti, ali ti su primjeri u Python 3. Saznajte više o razlike između Python 2 i Python 3.

Nakon što spremite, instalirajte Klik iz naredbenog retka pomoću PIP-a (kako instalirati PIP za Python):

pip instalacija klik

Pisanje programa prvog klika

U uređivaču teksta započnite s uvozom klika:

uvoz uvoz

Nakon uvoza izradite način i a glavni ulazna točka. Naše Vodič za Python OOP pokriva ih detaljnije, ali oni pružaju mjesto za pohranu vašeg koda i način da ga Python počne pokrenuti:

uvoz uvoz. uvesti nasumični def veg (): osnovna metoda će vratiti slučajni biljni otisak (random.choice (['Mrkva', 'Krompir', 'Orah', 'Kašica'))) ako je __name__ == '__main__': veg ()

Ovaj vrlo jednostavan skripta će proizvesti slučajno povrće. Vaš kôd može izgledati drugačije, ali ovaj je jednostavni primjer savršen za kombiniranje s klikom.

Spremite ovo kao click_example.py, a zatim ga pokrenite u naredbenom retku (nakon navigacije do njegove lokacije):

python click_example.py

Trebali biste vidjeti nasumično ime povrća. Unaprijedimo stvari dodavanjem klika. Promijenite svoj kôd tako da sadrži ukras klika i a za petlja:

@ Click.command () @ click.option ('- ukupno', zadano = 3, help = 'Broj povrća za izlaz.') def veg (ukupno): osnovna metoda vratit će nasumično povrće za broj u rasponu (ukupno): print (random.choice (['mrkva', 'krumpir', 'orah', 'peršin')) ako je __name__ == '__main__': veg ()

Nakon pokretanja vidjet ćete nasumično povrće prikazano tri puta.

Razložimo te promjene. @ Click.command () konfiguracije ukrasitelja Kliknite za rad s funkcijom koja odmah slijedi. U ovom slučaju to je slučaj povrće () funkcija. Trebat će vam ovo za svaku metodu koju želite koristiti s klikom.

'click.option Dekorator konfiguracije kliknite da biste prihvatili parametre iz naredbenog retka, koji će prenijeti na vašu metodu. Ovdje su korištena tri argumenta:

  1. postići da ukupne: Ovo je naziv naredbenog retka za ukupno argument.
  2. zadano: Ako ne navedete ukupni argument pri korištenju skripte, Click će upotrijebiti vrijednost iz zadane vrijednosti.
  3. Pomozite: Kratka rečenica koja objašnjava kako koristiti svoj program.

Pogledajmo Klik na djelu. Iz naredbenog retka pokrenite skriptu, ali prođite u ukupno argument poput ovog:

python click_example.py - ukupno 10

Postavljanjem - ukupno 10 iz naredbenog retka, vaša skripta ispisat će deset slučajnih povrća.

Ako uđete u -Pomozite zastave, vidjet ćete lijepu stranicu pomoći, zajedno s opcijama koje možete koristiti:

python click_example.py - pomoć
Python Kliknite pomoć

Dodavanje dodatnih naredbi

Na istoj je funkciji moguće koristiti mnogo ukrasa klikova. Dodajte drugu opciju klika na povrće funkcija:

@ click.option ('- matirač', zadano = netočno, pomoć = 'dodaj gravu' povrću. ')

Ne zaboravite to prenijeti u metodu:

def veg (ukupno, podmladak):

Sada kada pokrenete datoteku, možete je proslijediti u sos zastava:

python click_example.py --gravy y

Zaslon pomoći je također promijenjen:

Python Kliknite zaslon za pomoć

Evo cijelog koda (s nekim manjim refaktoringima za urednost):

uvoz uvoz. uvesti nasumično @ click.command () @ click.option ('- matirač', zadano = netočno, pomoć = 'dodaj gravu' povrću. ') @ click.option ('- ukupno', zadano = 3, help = 'Broj povrća za izlaz.') def veg (ukupno, gravy): osnovna metoda vraća slučajni povrće za broj u rasponu (ukupno): choice = random.choice (['Mrkva', 'Krompir', 'Jabuka', 'Kaša')) ako je matiran: ispis (f '{izbor} sa polutom') ostalo: ispis (izbor) ako __name__ == '__main__': veg ()

Opcije čak i više klikova

Kad upoznate osnove, možete započeti sagledavati složenije mogućnosti Klika. U ovom primjeru naučit ćete kako nekoliko vrijednosti prenijeti u jedan argument, koji će Click pretvoriti u tuple. Možete saznati više o tupovima u našoj vodič za Python rječnik.

Izradite novu datoteku pod nazivom click_example_2.py. Evo početnog koda koji vam treba:

uvoz uvoz. uvesti nasumično @ click.command () def add (): Osnovna metoda će dodati dva broja zajedno. prođe ako je __name__ == '__main__': add ()

Ovdje nema ništa novo. Prethodni dio detaljno objašnjava ovaj kôd. Dodati 'click.option zvao brojevi:

@ click.option ('- brojevi', nargs = 2, upišite = int, help = 'Dodaj dva broja zajedno.')

Jedini novi kod ovdje su nargs = 2, i type = int opcije. Ovo govori Click da prihvatite dvije vrijednosti za brojevi opciju i da moraju biti oba cjelobrojna tipa. To možete promijeniti na bilo koji broj ili (valjanu) vrstu podataka koji želite.

Na kraju promijenite dodati metoda prihvaćanja brojevi argument i izvršite neke obrade s njima:

def add (brojevi): Basic metoda će dodati dva broja zajedno. rezultat = brojevi [0] + brojevi [1] ispis (f '{brojevi [0]} + {brojevi [1]} = {rezultat}')

Svaka vrijednost koju unesete je dostupna putem brojevi objekt. Evo kako ga koristiti u naredbenom retku:

python click_example_2.py - brojevi 1 2
Rezultat Python Click nargs

Kliknite Je li rješenje za Python Utilities

Kao što ste vidjeli, Click je jednostavan za upotrebu, ali vrlo moćan. Iako ovi primjeri pokrivaju samo temelje Klika, postoji puno više značajki o kojima možete saznati sada kad steknu dobro osnove.

Ako tražite neke Python projekte s kojima biste mogli naučiti svoje nove pronađene vještine, zašto ne biste naučili kako kontrolirati Arduino s Pythonom Kako programirati i kontrolirati Arduino s PythonomNažalost, nije moguće izravno programirati Arduino na Pythonu, ali možete ga upravljati preko USB-a pomoću Python programa. Evo kako. Čitaj više ili kako čitanje i pisanje u Google tablice s Python-om Kako čitati i pisati na Google tablice s Python-omPython se može činiti čudnim i neobičnim, no lako ga je naučiti i koristiti. U ovom ću vam članku pokazati kako čitati i pisati na Google tablice koristeći Python. Čitaj više ? Bilo koji od ovih projekata bio bi savršen za pretvaranje u Click!

Joe je diplomski studij informatike na Sveučilištu u Lincolnu u Velikoj Britaniji. On je profesionalni programer softvera, a kad ne leti dronovima ili piše glazbu, često ga mogu naći fotografirati ili snimati videozapise.