Вы можете использовать getattr()
для доступа к атрибутам, которые, случается, reserved keywords тоже:
if getattr(args, 'print'):
Однако, вы будете делать это самостоятельно гораздо проще, просто avoidi ng это имя в качестве места назначения; использовать print_
возможно (через dest
argument):
arg_parser.add_argument('--print', dest='print_', action='store_true', help="print stuff")
# ...
if args.print_:
или, более общим синонимом как verbose
:
arg_parser.add_argument('--print', dest='verbose', action='store_true', help="print stuff")
# ...
if args.verbose:
Быстрый демо:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('--print', dest='print_', action='store_true', help="print stuff")
_StoreTrueAction(option_strings=['--print'], dest='print_', nargs=0, const=True, default=False, type=None, choices=None, help='print stuff', metavar=None)
>>> args = parser.parse_args(['--print'])
>>> args.print_
True
Использование 'Dest' для сохранения значения является хитроумный, я три раза читал документацию по аргрейсу и мог просто не понять это. Я приму это как ответ, когда это возможно. – crunsher