我如何使用用户输入来调用用户定义的函数?

问题描述 投票:-1回答:1

我有以下功能

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')

input1input2 只能有特定的值(比如说 "phone""customer" 暂时)。) 我有10个以上的函数,我不想使用If语句,因为它会太多。

我需要像excel中的vlookup那样的东西,我将创建可能的输入和共同赞助函数的列表,这样每个有效的用户输入都将被链接到列表中的函数。有什么方法可以做到吗?

python python-3.x list user-defined-functions
1个回答
0
投票

你可以使用 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 被取走了。

© www.soinside.com 2019 - 2024. All rights reserved.