簡體   English   中英

我怎樣才能使這個功能更干凈?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM