gpt4 book ai didi

python - 如何在python中用函数传递带参数的函数?

转载 作者:太空宇宙 更新时间:2023-11-04 08:49:00 32 4
gpt4 key购买 nike

考虑一下:

def function1():
def nestedfunc(param1, **kw):
logging.info("nested function %s" % kw) #error
function2(nestedfunc("is called"), string="not default")


def function2(func, string="default"):
try:
#doing some setting
func()
finally:
#reset back to setting

我得到:

func()
TypeError: 'NoneType' object is not callable

我假设 func() 没有传递参数,它会导致错误。

澄清一下,期望的结果是能够在添加任意数量的参数的情况下调用 func()。

有谁知道正确的做法是什么?任何建议将不胜感激!

最佳答案

您的 function2 收到 func=None 因为那是 nestedfunc() 的(默认)返​​回值,它使用参数 “被调用”。你可以使用 functools.partial “卡住”某些函数的参数:

from functools import partial

def function1():
def nestedfunc(param1, **kw):
logging.info("nested function %s" % kw) #error
function2(partial(nestedfunc, "is called"), string="not default")

关于python - 如何在python中用函数传递带参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37409643/

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