reklama

Click je balíček Python pro psaní rozhraní příkazového řádku. Vytváří pro vás nádhernou dokumentaci a umožňuje vám vytvářet rozhraní příkazového řádku již v jedné řádce kódu. Zkrátka: je to úžasné a může vám pomoci posunout vaše programy na další úroveň.

Zde je návod, jak jej použít k oživení vašich projektů Pythonu.

Psaní programů příkazového řádku bez kliknutí

Je možné psát programy příkazového řádku bez použití Click, ale vyžaduje to více úsilí a mnohem více kódu. Je třeba analyzovat argumenty příkazového řádku, provádět ověřování, rozvíjet logiku pro zpracování různých argumentů a vytvářet vlastní nabídku nápovědy. Chcete přidat novou možnost? Poté změníte funkci nápovědy.

S napsáním vlastního kódu není nic špatného, ​​a je to skvělý způsob, jak se naučit Python, ale Click vám umožní řídit se zásadami „Don't Repeat Yourself“ (DRY). Bez kliknutí budete psát kód, který je křehký a vyžaduje hodně údržby, kdykoli dojde ke změnám.

Zde je jednoduché rozhraní příkazového řádku kódované bez kliknutí:

instagram viewer
importovat sys. import random def do_work (): Funkce pro zpracování použití příkazového řádku args = sys.argv args = args [1:] # První prvek args je název souboru, pokud len (args) == 0: print ('Nepředali jste žádné příkazy v!') jinde: pro a in args: if a == '--help': print ('Základní program příkazového řádku') print ('Options:') print ('- -help -> show toto základní menu nápovědy. ') print (' --monty -> zobrazí nabídku Monty Python. ') print (' --veg -> show náhodná zelenina ') elif a ==' --monty ': print (' Co to je, pak? "Romanes eunt domus"? Lidé volali Romy, jdou, dům? ') Elif a ==' --veg ': print (random.choice ([' Carrot ',' Potato ',' Turnip ']))) else: print (' Unrecognized argument '. ') Pokud __name__ ==' __main__ ': do_work ()
Příklad rozhraní příkazového řádku Pythonu

Těchto 27 řádků Pythonu funguje dobře, ale jsou velmi křehké. Jakékoli změny, které provedete ve svém programu, vyžadují ke změně spoustu dalších podpůrných kódů. Pokud změníte název argumentu, budete muset aktualizovat informace nápovědy. Tento kód lze snadno vymknout kontrole.

Stejná logika jako u Click:

klikněte na import. importovat náhodné @ click.command () @ click.option ('- monty', default = False, help = 'Zobrazit nabídku Monty Python.') @ click.option ('- veg', default = False, help = 'Zobrazit náhodnou zeleninu.') def do_work (monty, veg): Příklad základního kliknutí bude následovat vaše příkazy, pokud monty: print ('Co je to tedy? "Romanes eunt domus"? Lidé volali Romy, jdou, dům? ') Pokud veg: print (random.choice ([' Mrkev ',' brambor ',' tuřín ']))), pokud __name__ ==' __main__ ': do_work ()

Tento příklad kliknutí implementuje stejnou logiku do 16 řádků kódu. Argumenty jsou analyzovány za vás a je vygenerována obrazovka nápovědy:

Python Click automaticky generovaná obrazovka nápovědy

Toto základní srovnání ukazuje, kolik času a úsilí můžete ušetřit pomocí programů, jako je Click. I když se rozhraní příkazového řádku může konečnému uživateli zdát stejné, základní kód je jednodušší a ušetříte spoustu času kódování. Jakékoli změny nebo aktualizace, které napíšete v budoucnu, také výrazně prodlouží dobu vývoje.

Začínáme s klepnutím na Python

Před použitím Click, možná budete chtít konfigurovat virtuální prostředí Naučte se, jak používat virtuální prostředí PythonAť už jste zkušený vývojář Pythonu, nebo právě začínáte, naučit se, jak nastavit virtuální prostředí, je pro každý projekt Python zásadní. Přečtěte si více . Tím zabráníte konfliktům vašich balíčků Pythonu s vaším systémovým Pythonem nebo jinými projekty, na kterých možná pracujete. Můžete také zkuste Python ve svém prohlížeči Vyzkoušejte Python ve svém prohlížeči pomocí těchto online interaktivních skořápek zdarmaAť už procházíte těmito příklady Pythonu nebo si prohlížíte základy polí a seznamů, můžete si vyzkoušet kód přímo v prohlížeči. Zde jsou nejlepší online tlumočníci Pythonu, které jsme našli. Přečtěte si více pokud si chcete hrát s Python a Click.

Nakonec se ujistěte, že používáte Python verze 3. Je možné použít Click s Pythonem verze 2, ale tyto příklady jsou v Pythonu 3. Další informace o rozdíly mezi Python 2 a Python 3.

Po dokončení instalace klikněte na příkazový řádek pomocí PIP (jak nainstalovat PIP pro Python):

pip install click

Psaní programu pro první kliknutí

V textovém editoru začněte importem Klikněte:

klikněte na import

Po importu vytvořte metoda a hlavní Vstupní bod. Náš Průvodce OOP Python pokrývá je podrobněji, ale poskytují místo pro uložení kódu a způsob, jak ho Python začít spouštět:

klikněte na import. import random def veg (): Základní metoda vrátí náhodný tisk zeleniny (random.choice (['Mrkev', 'Brambor', 'Řepa', 'Parsnip']))), pokud __name__ == '__main__': veg ()

Tento velmi jednoduchý skript vydá náhodnou zeleninu. Váš kód může vypadat jinak, ale tento jednoduchý příklad je perfektní pro kombinaci s Clickem.

Uložit jako click_example.pya poté jej spusťte v příkazovém řádku (po navigaci na jeho místo):

python click_example.py

Měli byste vidět náhodný název zeleniny. Pojďme zlepšit věci přidáním Click. Změňte svůj kód tak, aby obsahoval dekorátory Click a a pro smyčka:

@ click.command () @ click.option ('- celkem', výchozí = 3, help = 'Počet zeleniny na výstup.') def veg (total): Základní metoda vrátí náhodnou zeleninu pro číslo v rozsahu (celkem): print (random.choice (['Carrot', 'Potato', 'Turnip', 'Parsnip'])), pokud __name__ == '__main__': veg ()

Po spuštění uvidíte třikrát náhodnou zeleninu.

Pojďme rozebrat tyto změny. @ click.command () Konfigurátor dekoratérů Klikněte pro práci s funkcí bezprostředně po dekoratérovi. V tomto případě se jedná o veg () funkce. To budete potřebovat pro každou metodu, kterou chcete použít s Clickem.

@ click.option dekoratér konfiguruje kliknutím přijme parametry z příkazového řádku, které předá vaší metodě. Zde se používají tři argumenty:

  1. -celkový: Toto je název příkazového řádku pro celkový argument.
  2. výchozí: Pokud při použití skriptu neurčíte celkový argument, klikne na výchozí hodnotu hodnota.
  3. Pomoc: Krátká věta vysvětlující, jak používat váš program.

Uvidíme Click in action. Z příkazového řádku spusťte skript, ale předejte příkaz celkový argument jako je tento:

python click_example.py - celkem 10

Nastavením - celkem 10 z příkazového řádku vytiskne váš skript deset náhodných zeleniny.

Pokud předáte -Pomoc flag, zobrazí se pěkná stránka nápovědy a možnosti, které můžete použít:

python click_example.py - help
Python Click help

Přidání dalších příkazů

Je možné použít mnoho kliků na stejnou funkci. Přidejte další možnost kliknutí do veg funkce:

@ click.option ('- gravy', default = False, help = 'Připojit "s omáčkou" k zelenině.')

Nezapomeňte to předat do metody:

def veg (celkem, omáčka):

Nyní, když spustíte soubor, můžete předat soubor omáčka vlajka:

python click_example.py --gravy y

Obrazovka nápovědy se také změnila:

Python Klikněte na obrazovku nápovědy

Zde je celý kód (s drobnými refaktoringy pro úhlednost):

klikněte na import. importovat náhodné @ click.command () @ click.option ('- gravy', default = False, help = 'Připojit "s omáčkou" k zelenině.') @ click.option ('- celkem', výchozí = 3, help = 'Počet zeleniny na výstup.') def veg (total, gravy): Základní metoda vrátí náhodnou zeleninu pro číslo v rozsahu (celkem): volba = random.choice (['Mrkev', 'brambor', 'tuřín', 'pastinák']), pokud je omáčka: tisk (f '{volba} s omáčkou') jinde: tisk (volba), pokud __name__ == '__main__': veg ()

Ještě více Klikněte na Možnosti

Jakmile znáte základy, můžete začít zkoumat složitější možnosti kliknutí. V tomto příkladu se naučíte, jak předat několik hodnot jednomu argumentu, který Click převede na n-tici. Dozvíte se více o nití v našem průvodce slovníkem Python.

Vytvořte nový soubor s názvem click_example_2.py. Zde je startovací kód, který potřebujete:

klikněte na import. importovat náhodné @ click.command () def add (): Základní metoda přidá dvě čísla dohromady. pass if __name__ == '__main__': add ()

Není tu nic nového. Předchozí část podrobně vysvětluje tento kód. Přidat @ click.option volala čísla:

@ click.option ('- čísla', nargs = 2, typ = int, help = 'Sčítat dvě čísla dohromady.')

Jediným novým kódem jsou zde nargs = 2, a type = int možnosti. Kliknutím na toto tlačítko přijmete dvě hodnoty pro čísla možnost a že musí být typu celých čísel. Toto můžete změnit na libovolné číslo nebo (platný) datový typ, který se vám líbí.

Nakonec změňte přidat metoda pro přijetí čísla argumentovat, a udělat nějaké zpracování s nimi:

def add (čísla): Základní metoda přidá dvě čísla dohromady. result = čísla [0] + čísla [1] tisk (f '{čísla [0]} + {čísla [1]} = {výsledek}')

Každá hodnota, kterou předáte, je přístupná přes čísla objekt. Postup použití v příkazovém řádku:

python click_example_2.py - čísla 1 2
Výsledek Python Click nargs

Klepněte na tlačítko Je řešení pro nástroje Python

Jak jste viděli, Click se snadno používá, ale je velmi výkonný. I když tyto příklady pokrývají pouze základní základy Clicku, existuje spousta dalších funkcí, o kterých se můžete nyní dozvědět, když máte solidní přehled o základech.

Pokud hledáte nějaké projekty Pythonu, kde si můžete procvičit své nově nalezené dovednosti, proč se neučit jak ovládat Arduino s Pythonem Jak programovat a ovládat Arduino pomocí PythonuBohužel je nemožné přímo programovat Arduino v Pythonu, ale můžete jej ovládat přes USB pomocí programu Python. Zde je návod. Přečtěte si více , nebo co takhle čtení a zápis do Tabulek Google pomocí Pythonu Jak číst a zapisovat do Tabulek Google s PythonemPython se může zdát podivný a neobvyklý, je však snadné ho naučit a používat. V tomto článku vám ukážu, jak číst a psát do Tabulek Google pomocí Pythonu. Přečtěte si více ? Každý z těchto projektů by byl ideální pro převod na Click!

Joe je absolventem informatiky na University of Lincoln ve Velké Británii. Je to profesionální softwarový vývojář, a když nelétá dronů nebo píše hudbu, často ho najde, když fotografuje nebo produkuje videa.