给出以下三个功能:
def return_arg( *arg ):
return arg[0]
def an_expression( x, y, **kwargs ):
return x*x + y*y
def sub_function( x, y, F ):
return x + y + F(**locals())
我可以拨打以下sub_function( 1, 2, an_expression )
来获取8
。
我也可以打电话:
T = 5
return_arg(T)
我该如何致电
sub_function( 1, 2, return_arg)
如果我想要return_arg(T)
?
答案 0 :(得分:1)
我不确定我完全理解你的问题,但我认为你需要的是partial function:
from functools import partial
my_partial = partial(return_arg, T)
sub_function( 1, 2, my_partial)
答案 1 :(得分:1)
另一个选择是将args和/或kwargs传递给回调赋值器
def sub_function( x, y, F, *args, **kwargs):
return x + y + F(*args, **kwargs)
然后你可以随意调用它,例如
sub_function( 1, 2, return_arg, 5)