我有这段代码,它根据你的输入键调用一个函数。例如,如果选择pf
,它将调用pf
函数,my_function(20)
。在
我的问题是,我知道如何在没有参数的情况下调用函数,但我不知道如何使用参数来调用函数。由于()
,它现在运行所有函数,但是我如何给它赋参数并仍然调用它?我需要创建一个单独的论点列表吗?在
function_map = {
'pf':['finds the prime factors of a number',my_function(20)]
'cs':['solves a quadratic by completing the square',m.complete_square()]
'sr':['simplifies a radical',m.simplfy_radical(input('> '))]
}
for d in function_map.keys():
print('{} - {}'.format(d,function_map[d][0])
selection = input('Input keycode >>> ')
if selection in function_map.keys():
function_map[selection][1]()
function_map[selection][1]( *args )
是怎么回事,但首先必须删除(20)
,()
。。。从dict调用函数并将其结果放入dict中,而不是存储函数本身:然后我向列表中添加了一个额外的条目,它指定了参数的数量。在另一种方法是使用lambda,它在调用之前不会计算(仅编译)其主体:
你想要^{} 。
partial
太棒了,以至于我的书签里都有文档。在partial
是一个返回函数的函数,但其中某些参数已经设置:脚本
输出
^{pr2}${cd4}函数的实际执行不需要延迟。在
您可能需要编写一个使函数“可输入”的函数:
然后你就可以存储可输入的函数而不是原来的函数
^{4}$或者,您可以编写一个所谓的decorator使其可输入:(我的书签中也有装饰器)
然后像这样储存:
那么你就不需要使用partial。在
相关问题 更多 >
编程相关推荐