Czy można wymagać, aby argument argparse
był jedną z kilku ustawionych wartości?Zezwalanie na określone wartości argumentu Argparse
Moje bieżące podejście polegałoby na ręcznym sprawdzeniu argumentu i jeśli nie jest to jedna z dozwolonych wartości, wywołaj print_help()
i zakończ.
Oto obecna implementacja:
...
parser.add_argument('--val', dest='val', action='store',
help='Special testing value')
args = parser.parse_args(sys.argv[1:])
if args.val not in ['a','b','c']:
parser.print_help()
sys.exit(1)
To nie tak, że jest to szczególnie trudne, ale raczej, że wydaje się być brudny.
Wow, odpowiedziałeś na to szybko ... :-P – mgilson
Zadałem pytanie na IRC, nie otrzymałem odpowiedzi i napisałem to wszystko tutaj. Kiedy szlifowałem pytanie, zauważyłem to w dokumentach. Ponieważ pytanie nie było już na SO, wydawało się, że jest dobrym kandydatem do samo odpowiedzi. – Moshe
Tak. I zgodnie z [meta] (http://meta.stackexchange.com/questions/2706/posting-and-answering-questions-you-hready-found-the-answer-to), jest to zgodne z projektowanie celów witryny. Mając to na uwadze, +1 do Ciebie (lub czy to +2 :-P) – mgilson