Я пытаюсь выяснить argparse для моей приключенческой игры. Это мой код:Python argparse к игре
parser = argparse.ArgumentParser(description='Adventure')
parser.add_argument('--cheat','-c', action='store_true', help='cheat')
parser.add_argument('--info','-i', action='store_true', help='Information')
parser.add_argument('--version','-v', action='store_true', help='Version')
parser.add_argument('--about', '-a', action='store_true', help='About')
args = parser.parse_args()
if args.cheat or args.c:
print("Cheat")
sys.exit()
elif args.info or args.i:
print("Information")
sys.exit()
elif args.version or args.v:
print("Version")
sys.exit()
elif args.about or args.a:
print("About")
sys.exit()
else:
#Game code#
Но я получаю сообщение об ошибке, когда у меня есть все эти аргументы. Он отлично работал, когда я только обманул, но когда я добавил всех остальных, это испортилось. Или я действительно не знаю, что я делаю, или я не могу видеть, что случилось ...
Вот моя ошибка:
$ python3 adventure.py --info
Traceback (most recent call last):
File "adventure.py", line 12, in <module>
if args.cheat or args.c:
AttributeError: 'Namespace' object has no attribute 'c'
Причина я его, как это происходит потому, что я хочу, чтобы напечатать в этом в терминале без запуска игры, поэтому, если вы просто наберете python3 adventure.py, игра начнется. Но я не могу это сделать сейчас: P. Только приключение python3 adventure.py -c и python3 --cheat.
Кто-нибудь знает об этом?
Спасибо.