将其他变量传递给函数变量

时间:2017-08-29 08:27:37

标签: python python-3.x

我在TensorFlow中使用了一个函数,它将一组张量映射到另一个张量排列。例如,您可以写:

data = data.map(_function)

def _function(a, b, c):
    return (a + 1, b, c)

所以在这里,你将_function作为函数变量传递给map,map将三个张量传递给它们,这些张量以某种方式变换(这里只添加一个)并返回。

我的问题是:有没有办法将其他变量传递给_function?

如果我想执行a + x而不是a + 1,那么我该如何传递其他变量?

您无法执行以下操作:data.map(_function(x))因为您传递的是函数的结果,而不是函数本身。

我已尝试使用* arg,但我找不到方法。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

你可以这样做

def extra_func(x):
    def _function(a, b, c):
        return (a + x, b, c)
    return _function

所以你可以做data.map(extra_func(x))

或者您可以使用functools.partial来修复某些函数参数