【问题标题】:What does return function do in the functions below?return 函数在下面的函数中做了什么?
【发布时间】:2021-04-04 14:07:46
【问题描述】:

您能否向我解释一下returncallsquared_call 的作用?

def mult_by_five(x):
    return 5 * x

def call(fn, arg):
    """Call fn on arg"""
    return fn(arg)

def squared_call(fn, arg):
    """Call fn on the result of calling fn on arg"""
    return fn(fn(arg))

print(
    call(mult_by_five, 1),
    squared_call(mult_by_five, 1), 
    sep='\n', # '\n' is the newline character - it starts a new line
)

【问题讨论】:

  • 我的理解是在调用函数的时候传递一个操作或者一个变量的值。我要问的是返回函数后的多个括号在 call 和 squared_call 函数中的作用。
  • () 调用一个函数。例如。 return fn(arg) 返回用arg 调用fn 的返回值。

标签: python-3.x function return-type


【解决方案1】:

如果您退后一步并替换为不同的功能,这将更有意义。

不要看return fn(fn(n)),而是看更简单的例子。

return int(n)

这将返回int(n) 的结果。 n 被传递给 int,然后返回 int 返回的任何内容。

return str(int(n))

这将返回str(int(n)) 的结果。 n 被传递给int,然后无论int 返回什么都被传递给str,然后无论str 返回什么都被返回。

该示例中的难点在于fn 是作为参数传递给callsquared_call 的函数。

当你写call(mult_by_five, 1)时,call中的返回行相当于:

return mult_by_five(1)

当你写squared_call(mult_by_five, 1)时,squared_call中的返回行相当于:

return mult_by_five(mult_by_five(1))

【讨论】:

  • 现在更有意义了。非常感谢。
猜你喜欢
  • 2017-07-27
  • 2016-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-04
  • 2018-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多