python - 如何在 python 中返回函数参数 args、kwargs

标签 python python-3.x

我想要一个用户指定的函数将函数参数返回给另一个函数。

def wrapper(func, arg_func, iters=10):
    for i in range(iters):
        args, kwargs = arg_func()
        f(*args, **kwargs)

这可能吗?目前,如果我从 arg_func 返回一个没有任何 kwargs 的元组,那么它会提示需要解包的参数太多。

wrapper(func=print, arg_func=lambda: (random.uniform(0.0, 1.0),))

ValueError: not enough values to unpack (expected 2, got 1)

最佳答案

您的arg_func需要返回两个元素的序列,第一个元素是序列本身,第二个元素是字典。

这是调用wrapper()的一种方法。请注意,返回值的第一个元素是一个元组 (random.uniform(0.0, 1.0),),第二个元素是一个字典 {'flush':True} 。这些值只是示例。使用适合您的代码的任何序列和字典。

wrapper(func=print,
        arg_func=lambda: ((random.uniform(0.0, 1.0),), {'flush':True}))

这是另一个例子。 arg_func 返回两个位置参数,没有关键字参数:

wrapper(func=print, arg_func=lambda: (("Hello","World"), {}))

关于python - 如何在 python 中返回函数参数 args、kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42209993/

相关文章:

python - 如何在 Pandas 中进行 Groupby 比率计算

python - 从此 Python 生成器中删除递归

Python。使用 Gtk GUI 在后台做一些工作

python - 如何为切片 numpy 数组提供语法糖?

python - Conda Init 非法指令(核心已转储)

python - 为什么 -1 和 -2 在 CPython 中都散列为 -2?

python-3.x - elasticsearch python parallel_bulk无法插入数据

python-3.x - 使用 zipfile 模块对 zip 压缩文件执行 os.walk

python - 如何进行 Django 子查询

python - 使用 urllib2 python 禁止访问某些 url 403