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
add_subparsers(dest=...)registra qué verbo se usó.set_defaults(func=...)es el truco habitual de despacho.- Cada subparser tiene su propio texto de ayuda.
Palabras clave y builtins usados aquí
defintprintreturntype
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.
Paso 2 de 4 en Línea de comandos; paso 23 de 41 en Herramientas de dominio.