[英]Assigning a function (which is assigned dynamically) along with specific parameters, to a variable.
好的,这就是问题,比如说我有一个函数(take_action),它调用另一个函数。 但是我们不知道take_action将要调用哪个函数。
由于这一问题 ,我不得不弄清楚那部分,问题是,在这个问题上,它们处理了不带参数的函数,我的take_action可以采用彼此完全不同的几个不同函数之一,并采取完全不同的动作,不同的论点。
现在来看一些示例代码:
def take_action():
action['action']()
#does other stuff with 'other_stuff_in_the_dic'
def move(x,y):
#stuff happens
action = {'action': move, 'other_stuff_in_the_dic': 'stuff' }
(在这种情况下,“动作”将是移动的,但是就像我说的那样,它是根据某些用户输入动态分配的)
我想做的是这样的:
action = { 'action': move(2,3), 'other_stuff': 'stuff' }
(显然,在此调用该函数,因为它具有(),因此将无法使用)
我只是一个初学者,我唯一想到的就是使用一个列表,该列表位于dic内的另一个键中,但这只会传递一个列表参数,而不是将列表的每个内容作为论点。
有什么方法可以做到这一点,所以'action'键(或另一个键上的字典?)也存储了我在take_action上调用它时应该使用的参数?
使用functools.partial()
来存储带有参数的函数:
from functools import partial
action = {'action': partial(move, 2, 3), 'other_stuff': 'stuff'}
调用action['action']()
导致move(2, 3)
被调用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.