gpt4 book ai didi

python - 在 Python 中调用具有正确参数的方法列表

转载 作者:行者123 更新时间:2023-11-30 23:21:51 26 4
gpt4 key购买 nike

我正在尝试执行一个函数列表,其中某些函数的输出用作其他函数的输入。

我正在尝试做的事情的简化示例:

def a():
return 25

def b():
return 50

def c(x, y):
return x+y

通常情况下,我会这样做:print c(a(), b())

但是如果我有一个函数列表:l = [a,b,c]

如何迭代此列表并将正确的参数传递到方法 c 中?

谢谢。

最佳答案

我之前的回答不够通用,所以这里是另一个重击。这使用 inspect.getargspec() 在调用每个函数之前确定它的数量。有了这些知识,就可以从包含所有先前函数调用的结果的“结果列表”中分割出所需数量的参数。

有一些限制:

  • inspect.getargspec() 不适用于内置函数,仅适用于用户定义的函数。
  • 可变参数和关键字参数将被忽略,因为这可能会导致无限的参数,从而使事情变得复杂。

代码:

import inspect

def a():
return 25

def b():
return 50

def c(x, y):
return x + y

def d(x, y, z):
return x + y + z

def e(x=100):
return x * x

def f():
pass


def execute_function_list(funcs):
results = []
for i, fn in enumerate(funcs):
args_required = len(inspect.getargspec(fn).args)
if args_required > 0:
args = results[i-args_required:i]
else:
args = ()
print("calling function %r with args %r" % (fn, args))
results.append(fn(*args))
print("after function returned results = %r" % results)
return results[-1] if len(results) else None

if __name__ == '__main__':
funcs = [e, a, b, c, d, e]
print("final result is %r" % execute_function_list(funcs))

关于python - 在 Python 中调用具有正确参数的方法列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24770302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com