如何使用用户输入来调用用户定义的函数?
Posted
技术标签:
【中文标题】如何使用用户输入来调用用户定义的函数?【英文标题】:How can I use user input to call user defined function? 【发布时间】:2020-05-09 09:53:55 【问题描述】:我有以下功能
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 这样的东西,我将创建可能的输入列表和共同赞助函数,以便每个有效的用户输入都将链接到该列表中的一个函数。有什么办法吗?
【问题讨论】:
您的问题的要点很清楚,但是您的代码示例除了缩进不正确(我提交了编辑)之外,可能也不是您想要的。您可能希望在input1 == 'phone'
时调用 retrieve_phone_data
并在 input2 ==
customer'` 时调用 retrieve_customer_data
,而不是仅在两个相等条件成立时调用这两个函数。
【参考方案1】:
您可以在此处使用dict
:
data_retrievers =
"phone": retrieve_phone_data,
"customer": retrieve_customer_data,
然后在你的 main 方法中:
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
时调用。
【讨论】:
非常感谢!它工作顺利。顺便说一句,我在我的主要功能中包含了 data_retrivers 。它工作顺利。干杯!以上是关于如何使用用户输入来调用用户定义的函数?的主要内容,如果未能解决你的问题,请参考以下文章