尝试将函数设置为参数

时间:2016-01-01 09:40:28

标签: python

我正在尝试创建一个获取数字和返回函数的函数。例如:

  YourApp.directive('datePicker', function () {

var controller = [
/* Your controller */
],

  template =  /* Your Template */;

  return {
      restrict: 'EA', //Default in 1.3+
      scope: {
          datasource: '=',
          add: '&',
      },
      controller: controller,
      template: template
  };
});

如何将功能作为输出返回?我试着写这个:

>>> const_function(2)(2)
2
>>> const_function(4)(2)
4

为什么这不起作用?

2 个答案:

答案 0 :(得分:8)

您将返回调用该函数的结果。如果你想返回函数本身,只需参考它而不调用它:

def const_function(c):
    def helper(x):
        return c
    return helper # don't call it

现在您可以将其与期望的结果一起使用:

>>> const_function(2)
<function const_function.<locals>.helper at 0x0000000002B38D90>
>>> const_function(2)(2)
2
>>> const_function(4)(2)
4

答案 1 :(得分:6)

尝试:

return helper

当你这样做时:

return helper(x)

它计算helper(x)的结果并返回它。当你return helper它将返回函数本身。