如何从输入获取函数并将其应用于python中的数据

时间:2018-06-20 15:33:11

标签: python

从python输入中获取参数,数字和字符串是正常的。我想知道是否有办法从输入中获取用户定义的函数并将其应用到我的程序中。

假设我有一个程序

a = [12,34,2,3,4,23,16,84,3]
print(a)
b = get_function_from_input()
print(b(a))

,如果用户在输入中插入如下内容:

def myfun(X):
   return([max(X),min(X),sum(X)])

然后我的程序输出:

[84,2,181]  

2 个答案:

答案 0 :(得分:3)

您可以使用字典链接到已定义的逻辑:

a = [12,34,2,3,4,23,16,84,3]

def myfun(X):
    return([max(X),min(X),sum(X)])

dispatcher = {'max_min_sum': myfun}

b = input('Enter a dispatcher key:\n')

print(dispatcher[b](a))

演示输入/输出:

Enter a dispatcher key:
max_min_sum
[84, 2, 181]

答案 1 :(得分:1)

您如何准确获得输入?

如果有帮助,只想指出诸如数字和字符串之类的函数是python中的对象,可以将其视为参数或返回值。

a = [12,34,2,3,4,23,16,84,3]

def dostuff(func):
    return func(a)

def myfun(X):
    return([max(X),min(X),sum(X)])

print(dostuff(myfun))

输出

[84, 2, 181]