在函数回调中使用回调

时间:2018-04-27 18:02:58

标签: python callback arguments

给出以下三个功能:

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)

2 个答案:

答案 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)