Quiero tener algunas opciones en el módulo argparse, como --pm-exportcuando intento usarlo como args.pm-exportsi recibiera el error de que no hay atributo pm. ¿Cómo puedo solucionar este problema? ¿Es posible tener -opciones de línea de comando?
Para acciones de argumento opcionales, el valor de dest normalmente se infiere de las cadenas de opciones. ArgumentParser genera el valor de dest al tomar la primera cadena de opción larga y eliminar la --cadena inicial . Los -caracteres internos se convertirán en _caracteres para asegurarse de que la cadena sea un nombre de atributo válido
El informe de error de Python relevante: bugs.python.org/issue15125 . argparseutiliza setattry getattr, por lo tanto, los destnombres no tienen que ser dotnombres de atributos válidos . El usuario también puede usar getattr.
hpaulj
55
Yo solo lo haríapositional_arg = getattr( parser, 'positional-arg' )
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
1
Exactamente lo que necesitaba: lo hice al revés metavary no podía entender por qué no funcionaba. ¡Gracias!
argparse
utilizasetattr
ygetattr
, por lo tanto, losdest
nombres no tienen que serdot
nombres de atributos válidos . El usuario también puede usargetattr
.positional_arg = getattr( parser, 'positional-arg' )
metavar
y no podía entender por qué no funcionaba. ¡Gracias!Los guiones se convierten en guiones bajos:
fuente