реклама

Click е пакет Python за писане на интерфейси на командния ред. Той създава красива документация за вас и ви позволява да изграждате интерфейси на командния ред в само един ред код. Накратко: страхотно е и може да ви помогне да изкарате програмите си на следващото ниво.

Ето как можете да го използвате, за да оживите вашите Python проекти.

Писане на програми от командния ред без щракване

Възможно е да се пишат програми от командния ред, без да се използва Click, но това изисква повече усилия и много повече код. Трябва да анализирате аргументите на командния ред, да извършите валидиране, да разработите логика за обработка на различни аргументи и да съставите меню за помощ по избор. Искате ли да добавите нова опция? След това ще променяте функцията си за помощ.

Няма нищо лошо в това да напишете собствен код и това е чудесен начин да научите Python, но Click ви позволява да следвате принципите „Не повтаряйте себе си“ (DRY). Без щракване ще пишете код, който е крехък и изисква много поддръжка, когато се случат някакви промени.

instagram viewer

Ето един прост интерфейс на командния ред, кодиран без клик:

импортиране на sys. импортиране на произволни def do_work (): Функция за обработка на командния ред за използване args = sys.argv args = args [1:] # Първият елемент от args е името на файла, ако len (args) == 0: print ('Не сте предали никакви команди в!') друго: за a in args: if a == '--help': print ('Основна програма за команден ред') print ('Options:') print ('- -помощ -> покажи това основно меню за помощ. ') print (' --monty -> покажете цитат на Monty Python. ') print (' --veg -> покажете случаен зеленчук ') elif a ==' --monty ': print (' Какво е това, тогава? „Romanes eunt domus“? Хората наричали Роман, те отиват, къщата? ') Elif a ==' --veg ': print (random.choice ([' Морков ',' Картоф ',' Репка '))) else: print (' Неразпознат аргумент. ') ако __name__ ==' __main__ ': do_work ()
Пример за интерфейса на командния ред Python

Тези 27 реда на Python работят добре, но са много крехки. Всяка промяна, която направите във вашата програма, ще се нуждае от много други поддържащи кодове, за да се промени. Ако промените име на аргумент, ще трябва да актуализирате информацията за помощ. Този код може лесно да израсне извън контрол.

Ето същата логика с Click:

щракване върху импортиране. импортиране на случаен принцип @ click.command () @ click.option ('- monty', по подразбиране = False, help = 'Покажи цитат на Monty Python.') @ click.option ('- veg', по подразбиране = False, help = 'Покажи случаен зеленчук.') def do_work (monty, veg): Примерът на Basic Click ще следва вашите команди, ако monty: print („Какво е това тогава?“ „Romanes eunt domus“? Хората, наречени Romanes, отиват, къщата? ') If veg: print (random.choice ([' Морков ',' Картоф ',' Репка ')), ако __name__ ==' __main__ ': do_work ()

Този пример за изпълнение изпълнява същата логика в 16 реда код. Аргументите са анализирани за вас и се генерира помощният екран:

Python Click автоматично генериран помощен екран

Това основно сравнение показва колко време и усилия можете да спестите с помощта на програми като Click. Докато интерфейсът на командния ред може да изглежда същия за крайния потребител, основният код е по-прост и ще спестите много време за кодиране. Всички промени или актуализации, които напишете в бъдеще, също ще доведат до значително увеличаване на времето за развитие.

Първи стъпки с щракване за Python

Преди да използвате Click, може да пожелаете конфигуриране на виртуална среда Научете как да използвате Python виртуалната средаНезависимо дали сте опитен разработчик на Python или просто започвате, научаването как да настроите виртуална среда е от съществено значение за всеки проект на Python. Прочетете още . Това ще спре вашите пакети Python в конфликт с вашата система Python или други проекти, над които може да работите. Бихте могли също опитайте Python във вашия браузър Опитайте Python в браузъра си с тези безплатни онлайн интерактивни черупкиНезависимо дали преглеждате тези примери на Python или преглеждате основите на масиви и списъци, можете да тествате кода точно във вашия браузър. Ето най-добрите онлайн интерпретатори на Python, които открихме. Прочетете още ако искате да си поиграете с Python and Click.

И накрая, уверете се, че използвате Python версия 3. Възможно е да използвате Click с Python версия 2, но тези примери са в Python 3. Научете повече за разлики между Python 2 и Python 3.

След като сте готови, инсталирайте Кликнете от командния ред с помощта на PIP (как да инсталирате PIP за Python):

пип инсталиране клик

Писане на вашата програма за първо кликване

В текстов редактор, започнете с импортиране Кликнете:

щракване върху импортиране

Веднъж импортиран, създайте метод и a основен входна точка. наш Ръководство на Python OOP обхваща ги по-подробно, но те предоставят място за съхранение на вашия код и начин Python да започне да го изпълнява:

щракване върху импортиране. импортиране на произволна дефиниция (): Основният метод ще върне произволен зеленчуков отпечатък (random.choice (['Морков', 'Картоф', 'Репа', 'Магданоз'))), ако __name__ == '__main__': veg ()

Този много прост скрипт ще изведе произволен зеленчук. Кодът ви може да изглежда различно, но този прост пример е идеален за комбиниране с Click.

Запазете това като click_example.pyи след това го стартирайте в командния ред (след като отидете до неговото местоположение):

python click_example.py

Трябва да видите произволно име на зеленчуци. Нека подобрим нещата, като добавим Click. Променете кода си, за да включите декораторите на щракване и a за контур:

@ Click.command () @ click.option ('- общо', по подразбиране = 3, help = 'Брой зеленчуци за извеждане.') дефиниране (общо): Основният метод ще върне произволен зеленчук за число в диапазон (общо): print (random.choice (['Морков', 'Картоф', 'Рязък', 'Магданоз'))), ако __name__ == '__main__': veg ()

След като стартирате, ще видите три пъти произволен зеленчук.

Нека разбием тези промени. Най- @ Click.command () конфигурации на декоратора Щракнете, за да работите с функцията веднага след декоратора. В случая това е зеленчуци () функция. Това ще ви трябва за всеки метод, който искате да използвате с Click.

Най- @ click.option конфигураторът на декоратора щракнете, за да приемете параметрите от командния ред, които ще преминат към вашия метод. Тук са използвани три аргумента:

  1. -обща сума: Това е името на командния ред за обща сума аргумент.
  2. по подразбиране: Ако не посочите общия аргумент, когато използвате скрипта си, Click ще използва стойността по подразбиране.
  3. помогне: Кратко изречение, обясняващо как да използвате програмата си.

Нека да видим Клик в действие. От командния ред стартирайте скрипта си, но преминете в обща сума аргумент като този:

python click_example.py - общо 10

Чрез настройка –Тотал 10 от командния ред, скриптът ви ще отпечата десет произволни зеленчука.

Ако преминете в -помогне знаме, ще видите хубава страница за помощ, заедно с опциите, които можете да използвате:

python click_example.py --help
Python Click help

Добавяне на още команди

Възможно е да използвате много декоратори на кликвания за една и съща функция. Добавете друга опция за щракване към зеленчуков функция:

@ click.option ('- гравиране', по подразбиране = Грешно, помощ = 'Добавяне с гравиране' към зеленчуците. ')

Не забравяйте да въведете това в метода:

дефиниране (общо, гравитация):

Сега, когато стартирате файла си, можете да преминете в сок флаг:

python click_example.py --грави y

Помощният екран също се промени:

Python Щракнете върху помощния екран

Ето целия код (с някои незначителни рефактори за чистота):

щракване върху импортиране. импортиране на случаен принцип @ click.command () @ click.option ('- гравиране', по подразбиране = Грешно, помощ = 'Добавяне с гравиране' към зеленчуците. ') @ click.option ('- общо', по подразбиране = 3, help = 'Брой зеленчуци за извеждане.') дефиниране (общо, гравитация): Основният метод ще върне произволен зеленчук за число в диапазон (общо): избор = random.choice (['Морков', 'Картоф', 'Репа', 'Магданоз')) ако грави: печат (f '{избор} със сос') друго: печат (избор), ако __name__ == '__main__': veg ()

Още повече опции за щракване

След като знаете основите, можете да започнете да разглеждате по-сложни опции за щракване. В този пример ще научите как да предавате няколко стойности на един аргумент, който Click ще преобразува в кортеж. Можете да научите повече за кортежите в нашата упътване към речника на Python.

Създайте нов файл, наречен click_example_2.py. Ето нужния ви стартов код:

щракване върху импортиране. импортиране на случаен принцип @ click.command () def add (): Основният метод ще добави две числа заедно. пас, ако __name__ == '__main__': add ()

Тук няма нищо ново. Предишният раздел обяснява подробно този код. Добави @ click.option Наречен численост:

@ click.option ('- числа', nargs = 2, type = int, help = 'Добавяне на две числа заедно.')

Единственият нов код тук са nargs = 2, и на тип = Int настроики. Това казва Click, за да приеме две стойности за численост опция и че и двете трябва да са от тип цели числа. Можете да промените това на всеки номер или (валиден) тип данни, който харесвате.

И накрая, променете добави метод за приемане на численост аргумент и направете някаква обработка с тях:

def add (числа): Основният метод ще добави две числа заедно. резултат = числа [0] + числа [1] отпечатване (f '{числа [0]} + {числа [1]} = {резултат}')

Всяка стойност, която предавате, е достъпна чрез численост обект. Ето как да го използвате в командния ред:

python click_example_2.py - номера 1 2
Резултат от нарци на Python Click

Щракнете върху Решението за Python Utilities

Както видяхте, Click е лесен за използване, но много мощен. Макар че тези примери обхващат само основите на Click, има много повече функции, за които можете да научите сега, когато добре разбирате основните положения.

Ако търсите някои Python проекти, с които да практикувате новите си намерени умения, защо да не се научите как да контролираме Arduino с Python Как да програмирате и контролирате Arduino с PythonЗа съжаление е невъзможно директно да програмирате Arduino в Python, но можете да го управлявате през USB с помощта на програма Python. Ето как. Прочетете още или как да кажем четене и писане в Google Sheets с Python Как да четете и пишете в Google Таблици с PythonPython може да изглежда странно и необичайно, но той е лесен за научаване и използване. В тази статия ще ви покажа как да четете и пишете в Google Sheets, използвайки Python. Прочетете още ? Всеки от тези проекти би бил идеален за преобразуване в Click!

Джо е завършил компютърни науки от университета в Линкълн, Великобритания. Той е професионален разработчик на софтуер и когато не лети дронове или пише музика, често може да бъде намерен да прави снимки или да прави видео.