Skelbimas
Spustelėkite yra „Python“ paketas komandų eilutės sąsajoms rašyti. Tai sukuria jums gražią dokumentaciją ir leidžia kurti komandų eilutės sąsajas vos viena kodo eilute. Trumpai tariant: tai nuostabu ir gali padėti perkelti programas į kitą lygį.
Štai kaip galite tai panaudoti savo „Python“ projektams pagyvinti.
Komandinės eilutės programų rašymas be paspaudimo
Įrašyti komandų eilutės programas galima nenaudojant „Click“, tačiau tam reikia daugiau pastangų ir žymiai daugiau kodo. Turite išanalizuoti komandinės eilutės argumentus, atlikti patvirtinimą, išplėtoti įvairių argumentų tvarkymo logiką ir sukurti pasirinktinį žinyno meniu. Norite pridėti naują parinktį? Tuomet modifikuosite savo pagalbos funkciją.
Rašydami savo kodą nėra nieko blogo, ir tai yra puikus būdas išmokti Python'ą, tačiau spustelėdami galite laikytis principo „Negalima sau pakartoti“ (DRY). Nespustelėdami rašysite pažeidžiamą kodą, reikalaujantį daug priežiūros, kai įvyks kokie nors pakeitimai.
Čia yra paprasta komandinės eilutės sąsaja, užkoduota be paspaudimo:
importo sistema. importuoti atsitiktinį def do_work (): Funkcija valdyti komandų eilutės naudojimą args = sys.argv args = args [1:] # Pirmasis args elementas yra failo vardas, jei len (args) == 0: print ('Jūs neperdavote jokių komandų!') dar: for in ings: if = = '- padėti': print ('Pagrindinė komandinės eilutės programa') print ('Parinktys:') print ('- -pagalba -> parodyti šį pagrindinį pagalbos meniu. ') print (' --monty -> rodyti Monty Python citatą. ') print (' --veg -> show atsitiktinė daržovė ') elif a ==' --monty ': print (' Kas tai, tada? „Romai eunt domus“? Žmonės vadinami romėnais, jie eina, į namus? ') Elif a ==' --veg ': print (random.choice ([' Morka ',' Bulvė ',' Ropė '])) else: print (' Neatpažintas argumentas. ') jei __name__ ==' __main__ ': do_work ()
Šios 27 „Python“ linijos veikia gerai, tačiau yra labai trapios. Bet kokiems jūsų programos pakeitimams pakeisti reikės daug kitų palaikomųjų kodų. Jei pakeisite argumento pavadinimą, turėsite atnaujinti pagalbos informaciją. Šis kodas gali lengvai išaugti nekontroliuojamas.
Štai ta pati „Click“ logika:
importuoti spustelėkite. importuoti atsitiktinį @ click.command () @ click.option ('- monty', numatytasis = False, help = 'Rodyti Monty Python citatą.') @ click.option ('- veg', numatytasis = False, help = 'Rodyti atsitiktinę daržovę.') def do_work (monty, veg): Basic Click pavyzdys vykdys jūsų komandas, jei monty: print ('Kas tai tada?) „Romai eunt domus“? Žmonės vadinami romėnais, jie eina, į namus? ') Jei vega: spausdinti (atsitiktinis pasirinkimas ([' morkos ',' bulvės ',' ropė '])), jei __name__ ==' __main__ ': do_work ()
Šis „Click“ pavyzdys įgyvendina tą pačią logiką per 16 kodo eilučių. Argumentai yra analizuojami už jus ir sugeneruojamas pagalbos ekranas:
Šis pagrindinis palyginimas parodo, kiek laiko ir pastangų galite sutaupyti naudodami tokias programas kaip „Click“. Nors komandų eilutės sąsaja galutiniam vartotojui gali pasirodyti tokia pati, pagrindinis kodas yra paprastesnis ir jūs sutaupysite daug laiko kodavimo. Bet kokie pakeitimai ar atnaujinimai, kuriuos parašysite ateityje, taip pat pastebimai padidins plėtros laiką.
Pradėkite nuo „Python“ paspaudimo
Prieš naudodamiesi „Click“, galbūt norėsite sukonfigūruoti virtualią aplinką Sužinokite, kaip naudotis virtualia Python aplinkaNesvarbu, ar esate patyręs „Python“ kūrėjas, ar dar tik pradedate, bet kokiam „Python“ projektui išmokti nustatyti virtualiąją aplinką yra būtina. Skaityti daugiau . Tai sustabdys jūsų „Python“ paketus, nesuderinamus su jūsų sistemos „Python“ ar kitais projektais, prie kurių galbūt dirbate. Jūs taip pat galėtumėte išbandykite Python savo naršyklėje Išbandykite „Python“ savo naršyklėje naudodamiesi šiais nemokamais interaktyviais apvalkalaisNesvarbu, ar jūs einate į šiuos „Python“ pavyzdžius, ar peržiūrite pagrindus apie masyvus ir sąrašus, galite išbandyti kodą savo naršyklėje. Čia yra geriausi mūsų rasti internetiniai „Python“ vertėjai. Skaityti daugiau jei norite žaisti su „Python“ ir „Click“.
Galiausiai įsitikinkite, kad naudojate 3 „Python“ versiją. Galima naudoti „Click“ su „Python“ 2 versija, tačiau šie pavyzdžiai pateikiami „Python 3“. Sužinokite daugiau apie skirtumai tarp Python 2 ir Python 3.
Baigę įdiegti, spustelėkite komandinėje eilutėje naudodami PIP (kaip įdiegti PIP Python):
pip įdiegti spustelėkite
Pirmojo paspaudimo programos rašymas
Teksto rengyklėje pradėkite importuodami Spustelėkite:
importuoti spustelėkite
Kai importuosite, sukurkite metodas ir a pagrindinis įejimas. Mūsų Python OOP vadovas apima juos išsamiau, tačiau jie suteikia vietą jūsų kodo saugojimui ir būdas „Python“ pradėti jį vykdyti:
importuoti spustelėkite. importuoti atsitiktine „def veg“ (): pagrindinis metodas grąžins atsitiktinį daržovių atspaudą („random.choice“ ([‘morkos’, ‘bulvė’, ‘ropė’, ‘pastarnokas’])), jei __name__ == '__main__': veg ()
Šis labai paprastas scenarijus išves atsitiktinę daržovę. Jūsų kodas gali atrodyti kitaip, tačiau šį paprastą pavyzdį puikiai tinka derinti su „Click“.
Išsaugokite tai kaip click_example.pyir paleiskite jį komandinėje eilutėje (nuvykus į jos vietą):
python click_example.py
Turėtumėte pamatyti atsitiktinį daržovių pavadinimą. Patobulinkime reikalus pridėdami paspaudimą. Pakeiskite kodą, kad jame būtų „Click“ dekoratoriai ir a dėl kilpa:
@ click.command () @ click.option ('- iš viso', numatytasis = 3; help = 'išimamų daržovių skaičius.') def veg (iš viso): Pagrindinis metodas grąžins atsitiktines daržoves pagal skaičių intervale (iš viso): spausdinti (random.choice (['Morka', 'Bulvė', 'Ropė', 'Pastarnokas'])), jei __name__ == „__main__“: veg ()
Bėgdami pamatysite atsitiktinę daržovę, rodomą tris kartus.
Padalinkime šiuos pakeitimus. @ click.command () dekoratoriaus konfigūracijos Spustelėkite, jei norite dirbti su funkcija iškart po dekoratoriaus. Šiuo atveju tai yra vega () funkcija. Tai jums reikės kiekvieno metodo, kurį norėtumėte naudoti spustelėdami.
@ click.option dekoratoriaus konfigūracija spustelėkite, jei norite priimti parametrus iš komandinės eilutės, kurią jis perduos jūsų metodui. Čia naudojami trys argumentai:
- –Turi: Tai yra komandos eilutės pavadinimas viso argumentas.
- numatytas: Jei, naudodamiesi scenarijumi, nenurodysite viso argumento, spustelėjus bus naudojama numatytoji reikšmė.
- pagalba: Trumpas sakinys, paaiškinantis, kaip naudotis savo programa.
Pažiūrėkime, kaip veikti spustelėjus. Iš komandinės eilutės paleiskite scenarijų, bet perduokite viso toks argumentas:
python click_example.py - 10 visuma
Nustatant –Viso 10 iš komandinės eilutės scenarijus atspausdins dešimt atsitiktinių daržovių.
Jei praeisite - padėti vėliava, pamatysite gražų pagalbos puslapį kartu su pasirinktimis, kurias galite naudoti:
python click_example.py - help
Pridedama daugiau komandų
Tą pačią funkciją galima naudoti daugybe „Click“ dekoratorių. Pridėkite dar vieną paspaudimo parinktį vega funkcija:
@ click.option ('- padažas', numatytasis = klaidingas, pagalba = 'Pridėkite' daržovių su padažu '.)
Nepamirškite perduoti šio metodo:
def veg (bendras, padažas):
Dabar, kai paleisite failą, galėsite perduoti padažas vėliava:
python click_example.py - gravy y
Taip pat pasikeitė pagalbos ekranas:
Čia yra visas kodas (šiek tiek atkartojant tvarkingumą):
importuoti spustelėkite. importuoti atsitiktinį @ click.command () @ click.option ('- padažas', numatytasis = klaidingas, pagalba = 'Pridėkite' daržovių su padažu '.) @ click.option ('- iš viso', numatytasis = 3; help = 'išimamų daržovių skaičius.') def veg (bendras, padažas): Pagrindiniu metodu atsitiktine daržove bus pateiktas skaičius diapazone (iš viso): pasirinkimas = random.choice (['Morka', 'Bulvė', 'Ropė', 'Pastarnokas']), jei padažas: spausdinti (f '{pasirinkimas} su padažu') kitur: spausdinti (pasirinkti), jei __name__ == '__main__': veg ()
Dar daugiau paspaudimų parinkčių
Sužinoję pagrindus, galite pradėti ieškoti sudėtingesnių paspaudimų parinkčių. Šiame pavyzdyje sužinosite, kaip perduoti keletą reikšmių į vieną argumentą, kurį spustelėjus paversite kartotiniu. Galite sužinoti daugiau apie virpesius mūsų tinklalapyje Python žodyno vadovas.
Sukurkite naują failą pavadinimu click_example_2.py. Štai jums reikalingas pradinis kodas:
importuoti spustelėkite. importuoti atsitiktinį @ click.command () def add (): Pagrindinis metodas sujungs du skaičius. praeiti, jei __name__ == '__main__': pridėti ()
Čia nėra nieko naujo. Ankstesnis skyrius išsamiai paaiškina šį kodą. Pridėti @ click.option paskambino skaičiai:
@ click.option ('- skaičiai', nargs = 2, type = int, help = 'Pridėti du skaičius kartu.')
Vienintelis naujas kodas yra nargai = 2, ir tipas = int galimybės. Tai nurodo Spustelėkite, kad būtų priimtos dvi vertės skaičiai ir kad jie abu turi būti sveikų skaičių. Galite pakeisti tai bet kokiu numeriu ar (galiojančiu) duomenų tipu.
Galiausiai pakeiskite papildyti metodas priimti skaičiai argumentą ir šiek tiek apdorokite su jais:
def pridėjimas (skaičiai): Pagrindinis metodas sujungs du skaičius kartu. rezultatas = skaičiai [0] + skaičiai [1] spausdinti (f '{skaičiai [0]} + {skaičiai [1]} = {rezultatas}')
Kiekviena jūsų įvesta vertė yra prieinama per skaičiai objektas. Štai kaip jį naudoti komandinėje eilutėje:
python click_example_2.py - skaičiai 1 2
Spustelėkite Ar yra „Python Utilities“ sprendimas
Kaip matėte, „Click“ yra lengva naudoti, tačiau labai galinga. Nors šie pavyzdžiai apima tik pačius „Click“ pagrindus, yra daug daugiau funkcijų, apie kurias galite sužinoti dabar, kai gerai suprantate pagrindus.
Jei ieškote kokių nors „Python“ projektų, kad galėtumėte panaudoti savo naujus įgytus įgūdžius, kodėl gi neišmokite kaip su Python valdyti Arduino Kaip užprogramuoti ir valdyti „Arduino“ su python'uDeja, neįmanoma tiesiogiai suprogramuoti „Arduino“ Python'e, bet jūs galite valdyti jį per USB naudodami „Python“ programą. Štai kaip. Skaityti daugiau , ar kaip būtų skaityti ir rašyti „Google“ skaičiuoklėse naudojant „Python“ Kaip skaityti ir rašyti į „Google“ skaičiuokles naudojant PythonPython'as gali atrodyti keistas ir neįprastas, tačiau jį lengva išmokti ir naudoti. Šiame straipsnyje aš jums parodysiu, kaip skaityti ir rašyti į „Google“ skaičiuokles naudojant „Python“. Skaityti daugiau ? Bet kuris iš šių projektų būtų tobulas konvertuoti į „Click“!
Džo yra baigusi kompiuterių mokslą Linkolno universitete, JK. Jis yra profesionalus programinės įrangos kūrėjas, o kai jis neskraido dronais ar nerašo muzikos, jį dažnai galima rasti fotografuojant ar kuriant vaizdo įrašus.