我想在一个列表中存储多个函数。我有多个这样的列表存储在一个字典中。我想稍后调用这些函数,基于当时活动的列表。然而,我不仅想存储函数,我还想添加多个参数。
编辑:列表是按钮的列表。当按钮被按下时,函数应该运行。其中一个函数用于在按钮的“层”之间交换。
然而,当初始化列表时,函数被调用。我只希望这在按钮被按下时发生。
有没有办法解决这个问题,或者有没有更好的方法来存储我的数据?
dictionary = {
"example1" : [function1(argument), function2(argument), function4(argument)],
"example2" : [function1(argument), function5(argument), function3(argument)],
"example3" : [function1(argument), function3(argument), function5(argument), function1(argument)],
"example4" : [function3(argument, argument2],
"example5" : []
}
3条答案
按热度按时间0qx6xfy61#
正如一位评论者所说,您可以使用functools.partial来存储函数,以便稍后进行计算。
下面是一个完整的例子:
pgvzfuti2#
partial按照注解工作。但是,请参见下面的输出。
又名:Ninja-ed by Ben
输出:
nkhmeac63#
避免对函数对象求值
为了避免计算函数,你必须传递函数本身。有很多方法可以做到这一点,例如:
输出:
如果你想使用字典,它的工作方式如下:
正如答案中已经提到的,你也可以使用functools来实现这一点。
简单介绍参数和函数
如果你只是想存储函数定义,以便以后用任意参数调用:
输出: