start()函数是一个简单的ideabank程序的一部分,该程序可以存储想法。我想使其更整洁,或者将其拆分以用于更多功能。
您可以使用第二个参数(“ --list”列出想法或使用“ --delete”删除想法)调用ideabank程序,如果使用“ --delete”,则需要为第三个参数提供一个数字(您要删除的提示的数量)。启动函数处理这些异常。 您有什么建议可以使start()函数更清洁吗?
def start():
if len(sys.argv) == 1:
ask_for_an_idea()
elif sys.argv[1] == "--list":
print_ideas(read_ideas())
elif sys.argv[1] == "--delete":
try:
number = int(sys.argv[2])
except (IndexError, ValueError):
print("Specify a number after --delete")
else:
try:
delete_idea(read_ideas(), number)
except IndexError:
print(f"You have only {len(read_ideas())} idea(s).")
else:
print_ideas(read_ideas())
if __name__ == "__main__":
start()
答案 0 :(得分:0)
类似这样的东西:
if __name__ == '__main__':
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument('--list', help='Print ideas')
arg_parser.add_argument('--delete', default=-1, type=int, help='Specify which idea to delete')
arg_parser.add_argument('--store_new_idea', help='Prompt for a new idea')
args = arg_parser.parse_args()
if args.list is not None:
print_ideas()
if args.delete >= 0:
delete_idea(args.delete)
if args.store_new_idea is not None:
prompt_new_idea()