当前位置: 首页 > 面试题库 >

如何编写返回另一个函数的函数?

漆雕修能
2023-03-14
问题内容

在Python中,我想编写一个make_cylinder_volume(r)返回另一个函数的函数。返回的函数应该可以通过参数调用h,并返回高度h和半径为圆柱的体积r

我知道如何从Python中的函数返回 ,但是如何返回 另一个函数


问题答案:

使用Python尝试一下:

import math
def make_cylinder_volume_func(r):
    def volume(h):
        return math.pi * r * r * h
    return volume

这样使用它,例如与radius=10height=5

volume_radius_10 = make_cylinder_volume_func(10)
volume_radius_10(5)
=> 1570.7963267948967

注意,返回一个函数很简单,只需在函数内部定义一个新函数,然后在最后返回它-
小心地为每个函数传递适当的参数。仅供参考,从另一个函数返回一个函数的技术称为currying。



 类似资料:
  • 问题内容: 我一直在尝试为JavaScript中动态创建的“ a”标签的onclick事件分配一个函数。所有标记均按如下所示循环创建: 所有四个链接的警报值始终为“ 4”。很明显。谷歌搜索时,我遇到了显示以下代码片段的帖子: 我设法根据需要对其进行了调整,并使alert(i)正常工作,但是如果有人可以确切解释以上代码的作用,我将不胜感激。 问题答案: 当您将功能分配给单击处理程序时,将创建一个闭包

  • 问题内容: 我想编写以下功能,该功能应在Excel工作表中使用: …这将通过ODBC在内部连接到SQL数据库,然后在其中执行 并将返回结果值作为函数GetRecField的结果。上面的SQL被授权仅返回一个记录(IOW KEY_FIELD具有唯一约束)。 当然,上面的函数可以在工作表中多次调用,所以请尽量避免盲目 TIA。 问题答案: 您可以编写一个自定义函数来做到这一点 打开VBA编辑器(ALT

  • 问题内容: 我想要一个可以将变量/对象名称返回为str的函数,如下所示: 它看起来很傻,但是我需要该函数来构造有关变量的表达式,以供以后在’exec()’上使用。有人可以帮忙写“ get_variable_name”吗? 问题答案: 我现在已经在SO上多次见过关于这种问题的一些变体。答案是 否定的 。 学会随时使用名称和对象之间的关联。 稍后您将为此感谢自己。 在回答“我的代码如何发现对象的名称?

  • 我在玩TypeScript中的条件类型。我想用条件返回类型编写一个函数。如果函数被传递一个字符串,它将返回一个名称,否则它将返回一个Id。 我在返回语句中得到以下错误: 我错过了什么?Thnx! 编辑:直接摘自Anders Hejlsberg在Build 2018上的演讲:https://youtu.be/hDACN-BGvI8?t=2241 他甚至说“我们不再需要写函数重载了…” 如果我将代码更

  • 问题内容: 例如字符串“ abaccddccefe”中的“ ccddcc” 我想到了一个解决方案,但它的运行时间为O(n ^ 2) 算法1: 步骤:这是一种蛮力方法 对于i = 1到i小于array.length的2个for循环, 对于j = i + 1到j小于 array.length的-1 这样,您可以从数组中获取所有可能组合的子字符串 具有回文功能,可检查字符串是否为回文 因此,对于每个子字

  • 问题内容: 选项:使用元组 考虑下面这个简单的例子: 但是,随着返回值的数量增加,这很快就会成为问题。如果要返回四个或五个值怎么办?当然,你可以继续修改它们,但是很容易忘记哪个值在哪里。在任何想要接收它们的地方打开它们的包装也是很丑陋的。 选项:使用字典 下一步的逻辑步骤似乎是引入某种“记录符号”。在Python中,一种明显的方法是使用dict。 考虑以下: (请注意,y0,y1和y2只是抽象标识