我有以下代码:
if text == 'today':
date1, date2 = dt.today_()
result, data = ga.get_sessions_today_data(user_id, date1, date2)
result, data, caption = get_final_caption(result, data, date1, date2, 'hour', 'sessions')
handle_result(chat_id, result, data, caption)
elif text == 'yesterday':
date1, date2 = dt.yesterday()
result, data = ga.get_sessions_today_data(user_id, date1, date2)
result, data, caption = get_final_caption(result, data, date1, end_date, 'hour', 'sessions')
handle_result(chat_id, result, data, caption)
...
代码重复多次,只有dt.function()
和ga.function()
不同。我怎样才能优化代码?
答案 0 :(得分:7)
你可以制作一个字典,其中包含text
的每种可能性的函数。不要在函数后面添加括号,因为你不想调用它们:
options = {"today": dt.today_, "yesterday": dt.yesterday} # etc
然后,您可以执行此操作来替换现有代码:
date1, date2 = options[text]() # Get the correct function and call it
result, data = ga.get_sessions_today_data(user_id, date1, date2)
result, data, caption = get_final_caption(result, data, date1, date2, 'hour', 'sessions')
handle_result(chat_id, result, data, caption)