首页 > 解决方案 > 您可以将带参数的函数存储在列表中,然后在 Python 中调用它们吗?

问题描述

例如,当我有:

def function(text):
  print(text)

mylist = [function('yes'),function('no')]

mylist[0]

它只打印 yes 和 no 并且不使用mylist[0].

我希望它能够使用列表中的参数调用函数,并且在程序启动时不运行函数。这可能吗?

标签: pythonpython-3.xlistfunction

解决方案


听起来您想存储预先绑定参数的函数。您可以使用functools.partial已定义的部分或全部参数为您提供函数:

from functools import partial

def f(text):
    print(text)

mylist = [partial(f, 'yes'), partial(f,'no')]

mylist[0]()
# yes

mylist[1]()
# no 

推荐阅读