Библиотека Click
Создавайте CLI с декораторами
«Библиотека Click» — бесплатный урок Python Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Python Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Python Academy содержит 4 уроков всего.
Что такое Click?
Click — популярная сторонняя библиотека для создания интерфейсов командной строки с помощью декораторов. Она обрабатывает разбор аргументов, текст справки, запросы и цвета, требуя совсем немного кода. Установите её с помощью pip install click.
import click
@click.command()
def hello():
click.echo('Hello from Click')
# hello() would run when called as a scriptclick.echo
Используйте click.echo() вместо print. Она обрабатывает проблемы с кодировкой и без сложностей работает с возможностями Click для цвета и перенаправления.
import click
@click.command()
def greet():
click.echo('Welcome!')
Аргументы
Декоратор @click.argument объявляет обязательный позиционный аргумент, который Click передаёт Вашей функции в качестве параметра.
import click
@click.command()
@click.argument('name')
def hello(name):
click.echo('Hello ' + name)
Параметры
@click.option определяет необязательные флаги. Укажите значение по умолчанию, и Click автоматически создаст текст справки и обработку типов.
import click
@click.command()
@click.option('--count', default=1, help='Number of greetings')
def hello(count):
for _ in range(count):
click.echo('Hi')
Параметры с типами
Click определяет тип по значению по умолчанию, но его можно задать явно с помощью type=int. Некорректные входные данные вызовут понятную ошибку.
import click
@click.command()
@click.option('--age', type=int, default=0)
def show(age):
click.echo('Age is ' + str(age))
Логические флаги
Параметр с is_flag=True становится переключателем, который принимает значение True при наличии, например --verbose.
import click
@click.command()
@click.option('--shout', is_flag=True)
@click.argument('text')
def say(shout, text):
click.echo(text.upper() if shout else text)
Интерактивные запросы
Установите prompt=True, и Click интерактивно спросит пользователя, если параметр не был указан в командной строке.
import click
@click.command()
@click.option('--name', prompt='Your name')
def hello(name):
click.echo('Hello ' + name)
Группы команд
@click.group создаёт родительскую команду, содержащую подкоманды, — это аналог подпарсеров argparse. Подкоманды подключаются с помощью @cli.command().
import click
@click.group()
def cli():
pass
@cli.command()
def start():
click.echo('starting')
@cli.command()
def stop():
click.echo('stopping')
Цветной вывод
click.style оборачивает текст в цвет и стили, а click.secho объединяет вывод и стилизацию в одном вызове.
import click
@click.command()
def status():
click.secho('OK', fg='green', bold=True)
click.secho('Error', fg='red')
Подтверждение и завершение
click.confirm задаёт вопрос с ответом «да» или «нет», а вызов click.Abort или возврат из функции корректно завершает команду.
import click
@click.command()
def delete():
if click.confirm('Are you sure?'):
click.echo('deleted')
else:
click.echo('cancelled')
argparse и Click
argparse встроен в Python и отлично подходит для простых инструментов. Click является внешней зависимостью, но для более крупных CLI предлагает более чистый стиль с декораторами, вложенные группы, запросы и поддержку цвета из коробки.
import click
@click.command()
@click.argument('items', nargs=-1)
def show(items):
for item in items:
click.echo(item)
Быстрая проверка
Проверьте своё понимание Click.
Итоги
Вы изучили библиотеку Click:
- Декораторы
@click.command,@click.argument,@click.optionопределяют CLI. click.echoиclick.sechoвыводят текст, при необходимости используя цвет.@click.groupсоздаёт вложенные подкоманды; интерактивные запросы и подтверждения встроены в библиотеку.- Это внешняя зависимость, устанавливаемая через pip.
Далее: стилизация вывода терминала с помощью rich.
Часто задаваемые вопросы
Урок «Библиотека Click» бесплатный?
Да — полный текст урока «Библиотека Click» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Python Academy, подпишись на CoddyKit PRO. Курс Python Academy содержит 4 уроков всего.
Чему я научусь в уроке «Библиотека Click»?
Создавайте CLI с декораторами Ты практикуешь Python Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Python Academy?
Предыдущий опыт не требуется. Python Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Библиотека Click»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Python Academy?
Да. Каждый урок Python Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.