python - 您可以将带有参数的函数存储在列表中,然后在 Python 中调用它们吗?

标签 python python-3.x list function

例如,当我有:

def function(text):
  print(text)

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

mylist[0]

它只打印 yes 和 no,不对 mylist[0] 做任何事情。

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

最佳答案

听起来你想存储预绑定(bind)参数的函数。您可以使用 functools.partial给你一个已经定义了部分或全部参数的函数:

from functools import partial

def f(text):
    print(text)

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

mylist[0]()
# yes

mylist[1]()
# no 

关于python - 您可以将带有参数的函数存储在列表中,然后在 Python 中调用它们吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59221490/

相关文章:

python - 每个用户的 Celery PeriodicTask

python - oct2py - 在 python 中使用线程调用 Octave 函数

具有相同数量实例的 Python max

python - 无法在 Moviepy 中添加文本剪辑。获取与 Imagemagic 相关的错误

python 3 : Attempted relative import in non-package

Python 列表到列表列表

python - 使用双 'double quotes' 和嵌入式逗号在 Pandas 中读取 CSV 文件

python - 使用 Pybind11 转换二维数组

python - 返回列表中正数或负数元素的函数

c# - 为什么实现 'IList<T>' 需要定义两个 'GetEnumerator' 方法?