您可以将带参数的函数存储在列表中并稍后在 Python 中调用它们吗?

use*_*788 2 python function list python-3.x

例如,当我有:

def function(text):
  print(text)

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

mylist[0]
Run Code Online (Sandbox Code Playgroud)

它只是打印 yes 和 no 并且不对mylist[0].

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

Mar*_*yer 8

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

from functools import partial

def f(text):
    print(text)

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

mylist[0]()
# yes

mylist[1]()
# no 
Run Code Online (Sandbox Code Playgroud)