如何删除一次又一次重复的if条件?
if input["custom_fields"].get("billing_notes", None):
billing_notes.update({"value": input["custom_fields"]["billing_notes"]})
work_order_number = {
"name": "work_order_number",
"label": "Work Order Number",
}
if input["custom_fields"].get("work_order_number", None):
work_order_number.update({"value": input["custom_fields"]["work_order_number"]})
contact_name_for_billing = {
"name": "contact_name_for_billing",
"label": "Contact Name For Billing",
}
if input["custom_fields"].get("contact_name_for_billing", None):
contact_name_for_billing.update({"value": input["custom_fields"]["contact_name_for_billing"]})
在每个字典中,名称和标签键都会一直存在,但如果用户输入了相关字典的值,那么只有在那个时候它才应该更新,但在这种情况下,相同的逻辑会一次又一次地重复,所以我如何在不重复相同代码的情况下做到这一点
执行上述操作的一种方法是拥有一个字典,如
update_dict = {
"billing_notes": {...}
"work_order_number": {...},
"contact_name_for_billing": {...}
}
稍后,您可以循环浏览它们并进行更新,进一步考虑到您在某些地方使用的是文本和实际变量名,这实际上可能是有益的。
for (key, udict) in update_dict.items():
if input["custom_fields"].get(key, None):
udict.update({"value": input["custom_fields"][key]})
据我所知,我看不到任何其他可行的更简单的方法来做到这一点。希望你觉得这个答案有用。一定要在评论中提出问题。