0Pricing
Python Academy · Урок

Библиотека 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 script

click.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 — локальная установка не требуется.

Все уроки этого курса

  1. Основы argparse
  2. Подкоманды и параметры
  3. Библиотека Click
  4. Расширенный вывод в терминале
← Назад к Python Academy