供用户选择的可选功能
optional function to choose for user
我写了一个使用很多函数的程序 (def name():
)。
这些函数总结在代码的末尾,如:
a()+b()+c()+d()+e()
我可以通过什么方式做到这一点:
program:
>>>a,b,c,d,e是可选函数,你想在计算中使用这些函数中的哪一个?
user:
>>>a,b,d
并且程序只是将那些选定的函数带入程序。
我确实搜索了很多,但找不到这样的东西。
感谢您的帮助。
您可以通过以下方式使用字典。
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
您可以使用 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))
我写了一个使用很多函数的程序 (def name():
)。
这些函数总结在代码的末尾,如:
a()+b()+c()+d()+e()
我可以通过什么方式做到这一点:
program:
>>>a,b,c,d,e是可选函数,你想在计算中使用这些函数中的哪一个?
user:
>>>a,b,d
并且程序只是将那些选定的函数带入程序。
我确实搜索了很多,但找不到这样的东西。 感谢您的帮助。
您可以通过以下方式使用字典。
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
您可以使用 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))