gpt4 book ai didi

python - 我如何编写一个函数,看起来它需要一个函数名称列表和每个 function_name 的变量参数

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:29 24 4
gpt4 key购买 nike

找到一个好的标题有点困难,如果这个标题具有误导性,我们深表歉意..

我想编写一个函数,它将接受其他函数(及其可能的参数)以及其他参数。

例如我有以下功能:

def f1():
pass

def f2(arg1):
pass

def f3(arg1, arg2):
pass

所以我的函数看起来像这样

def master(mandatory_arg, f1, f2, arg1, f3, arg1, arg2, ...):
mandatory_arg = some_value
f1()
f2(arg1)
f3(arg1, arg2)

实际上,函数签名可能看起来像这样:

def master(mandatory_arg, *args):
#magic happens here to parse * args
#call each function with its argument list

我不知道有多少个函数(和 args 将传递给函数。编写此函数的最佳方法是什么?

这个功能(master)将由相当非技术人员使用,所以我想让他们尽可能简单。

我的问题是,我如何解析 *args 以获取传递给 *args 的每个函数的函数名称和参数。

最佳答案

你可以使用callable,或者inspect,inspect会告诉你这个函数需要多少个参数:

import inspect
def master(mandatory_arg, *args):
args = list(args)
while args:
f = args.pop(0)
n = len(inspect.getargspec(f).args)
p, args = args[:n], args[n:]
f(*p)

master(mandatory_arg, f1, f2, 'a1', f3, 'a1', 'a2')

关于python - 我如何编写一个函数,看起来它需要一个函数名称列表和每个 function_name 的变量参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20294966/

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