[英]How can I make this function cleaner?
start() 函數是一個簡單的ideabank 程序的一部分,可以存儲想法。 我想讓它更干凈,也許可以拆分它以獲得更多功能。
您可以使用第二個參數調用ideabank 程序(“--list”列出想法或“--delete”刪除想法),如果您使用“--delete”,則需要為第三個參數提供一個數字(想法的數量要刪除的)。 start 函數處理這些和異常。 你有什么建議讓 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()
像這樣的東西:
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.