我有以下功能
def retrieve_phone_data():
# function does something
return phone_list
def retrieve_customer_data():
# function does something
return customer_info
def main(input1, input2):
if input1 == 'phone' and input2 == 'customer':
retrieve_phone_data()
retrieve_customer_data()
else:
print('Please enter valid input')
input1
和 input2
只能有特定的值(比如说 "phone"
和 "customer"
暂时)。) 我有10个以上的函数,我不想使用If语句,因为它会太多。
我需要像excel中的vlookup那样的东西,我将创建可能的输入和共同赞助函数的列表,这样每个有效的用户输入都将被链接到列表中的函数。有什么方法可以做到吗?
你可以使用 dict
这里。
data_retrievers = {
"phone": retrieve_phone_data,
"customer": retrieve_customer_data,
}
然后在你的主方法中,
if input in data_retrievers:
data_retriever = data_retrievers[input]
retrieved_data = data_retriever()
else:
# Signify invalid input
如果你想添加另一个输入,你只需添加一个条目到 data_retrievers
钥匙是 input
和值是对应的函数。请注意,没有 ()
中的函数名称后的 data_retrievers
的时候,该函数才会被调用。data_retriever
被取走了。