typestar

Subcomandos en Python

Los subparsers le dan a un programa varios verbos, cada uno con sus argumentos.

import argparse


def jugar(args):
    return f"jugando {args.lang} paso {args.idx}"


def estadisticas(args):
    return f"estadísticas de la {args.window}"


parser = argparse.ArgumentParser(prog="ts")
subcomandos = parser.add_subparsers(dest="command", required=True)

parser_jugar = subcomandos.add_parser("play", help="juega un paso")
parser_jugar.add_argument("lang")
parser_jugar.add_argument("idx", type=int)
parser_jugar.set_defaults(func=jugar)

parser_estadisticas = subcomandos.add_parser("stats")
parser_estadisticas.add_argument("--window", default="semana")
parser_estadisticas.set_defaults(func=estadisticas)

args = parser.parse_args(["play", "rust", "3"])
print(args.func(args))

Cómo funciona

  1. add_subparsers(dest=...) registra qué verbo se usó.
  2. set_defaults(func=...) es el truco habitual de despacho.
  3. Cada subparser tiene su propio texto de ayuda.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
25
Caracteres a escribir
688
Tokens
173
Ritmo de tres estrellas
105 tpm

Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 99 segundos.

Escribe este fragmento

Paso 2 de 4 en Línea de comandos; paso 23 de 41 en Herramientas de dominio.

← Anterior Siguiente →