可选功能为用户选择

时间:2018-03-22 20:07:58

标签: python function option

我使用许多函数(def name():)编写了一个程序。 这些函数在代码末尾汇总,如:

a()+b()+c()+d()+e() 我能用这种方式做到这一点:

program:>>> a,b,c,d,e是可选功能,您希望在计算中使用其中一个功能吗?

user:>>> a,b,d

并且程序只是将这些选定的函数带入程序中。

我做了很多搜索,但我找不到这样的事情。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:2)

您可以通过以下方式使用字典。

def a():
    return 2 + 3

def b():
    return 3 - 2

def c():
    return 2*3

def d():
    return 2/3

dic = {}
dic['a'] = a
dic['b'] = b
dic['c'] = c
dic['d'] = d

funcs = str(raw_input("which functions would you like to use?: "))
funcs = funcs.split(',')

result = 0

for i in funcs:
    result += dic[i]()

print result

答案 1 :(得分:0)

您可以使用getattr()来获取函数:

import sys

def a():
    return 1

def b():
    return 2

def c():
    return 3

sum = 0

# Assume user input of 'a' & 'c'
for name in ['a', 'c']:
    #
    # Get the function and call it...
    #
    sum += getattr(sys.modules[__name__], name)()

print('sum: {}'.format(sum))