0Pricing
Python Academy · Lektion

Die Click-Bibliothek

CLIs mit Decorators erstellen

Die Click-Bibliothek ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist Click?

Click ist eine beliebte Bibliothek eines Drittanbieters zum Erstellen von Kommandozeilenschnittstellen mithilfe von Decorators. Sie übernimmt das Parsen, Hilfetexte, Eingabeaufforderungen und Farben mit sehr wenig Code. Installieren Sie sie mit pip install click.

import click

@click.command()
def hello():
    click.echo('Hello from Click')

# hello() would run when called as a script

click.echo

Verwenden Sie click.echo() statt print. Die Funktion behandelt Probleme mit der Zeichenkodierung und arbeitet reibungslos mit den Farb- und Umleitungsfunktionen von Click zusammen.

import click

@click.command()
def greet():
    click.echo('Welcome!')

Argumente

Der Decorator @click.argument deklariert ein erforderliches Positionsargument, das Click Ihrer Funktion als Parameter übergibt.

import click

@click.command()
@click.argument('name')
def hello(name):
    click.echo('Hello ' + name)

Optionen

@click.option definiert optionale Flags. Geben Sie einen Standardwert an, und Click erstellt automatisch Hilfetexte und eine Typverarbeitung.

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings')
def hello(count):
    for _ in range(count):
        click.echo('Hi')

Typisierte Optionen

Click leitet den Typ aus dem Standardwert ab. Alternativ können Sie ihn mit type=int explizit festlegen. Eine ungültige Eingabe erzeugt eine verständliche Fehlermeldung.

import click

@click.command()
@click.option('--age', type=int, default=0)
def show(age):
    click.echo('Age is ' + str(age))

Boolesche Flags

Eine Option mit is_flag=True wird zu einem Schalter, der bei vorhandener Angabe True ist, etwa --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)

Eingabeaufforderungen

Setzen Sie prompt=True, und Click fragt interaktiv nach, wenn die Option nicht in der Kommandozeile angegeben wurde.

import click

@click.command()
@click.option('--name', prompt='Your name')
def hello(name):
    click.echo('Hello ' + name)

Befehlsgruppen

@click.group erstellt einen übergeordneten Befehl, der Unterbefehle enthält – das Click-Gegenstück zu den Subparsern von argparse. Unterbefehle werden mit @cli.command() angefügt.

import click

@click.group()
def cli():
    pass

@cli.command()
def start():
    click.echo('starting')

@cli.command()
def stop():
    click.echo('stopping')

Farbausgabe

click.style umgibt Text mit Farbe und Formatierungen, während click.secho die Ausgabe und Formatierung in einem Aufruf kombiniert.

import click

@click.command()
def status():
    click.secho('OK', fg='green', bold=True)
    click.secho('Error', fg='red')

Bestätigung und Beenden

click.confirm stellt eine Ja/Nein-Frage. Das Auslösen von click.Abort oder eine Rückgabe beendet den Befehl ordnungsgemäß.

import click

@click.command()
def delete():
    if click.confirm('Are you sure?'):
        click.echo('deleted')
    else:
        click.echo('cancelled')

argparse oder Click

argparse ist integriert und eignet sich hervorragend für einfache Werkzeuge. Click ist eine externe Abhängigkeit, bietet aber für umfangreichere CLIs einen übersichtlicheren Decorator-Stil, verschachtelte Gruppen, Eingabeaufforderungen und sofort verfügbare Farbausgabe.

import click

@click.command()
@click.argument('items', nargs=-1)
def show(items):
    for item in items:
        click.echo(item)

Kurzer Test

Testen Sie Ihr Verständnis von Click.

Zusammenfassung

Sie haben die Bibliothek Click kennengelernt:

  • Die Decorators @click.command, @click.argument und @click.option definieren ein CLI.
  • click.echo und click.secho geben Text aus, optional auch mit Farbe.
  • @click.group erstellt verschachtelte Unterbefehle; Eingabeaufforderungen und Bestätigungen sind integriert.
  • Click ist eine externe Abhängigkeit und wird über pip installiert.

Als Nächstes: Terminalausgaben mit rich formatieren.

Häufig gestellte Fragen

Ist die Lektion „Die Click-Bibliothek“ kostenlos?

Ja — der vollständige Text von „Die Click-Bibliothek“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Die Click-Bibliothek“?

CLIs mit Decorators erstellen Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Die Click-Bibliothek“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. argparse-Grundlagen
  2. Unterbefehle und Optionen
  3. Die Click-Bibliothek
  4. Ausdrucksstarke Terminalausgaben
← Zurück zu Python Academy