【问题标题】:Receiving function as another function´s parameter接收函数作为另一个函数的参数
【发布时间】:2019-02-19 17:40:51
【问题描述】:

假设我有 2 个这样的函数:

def list(n):
   l=[x for x in range(n)]
   return l
def square(l):
   l=list(map(lambda x:x**2,l))
   print(l)

第一个从给定范围“n”中的所有数字创建一个列表,第二个接收一个列表作为参数并返回该列表的平方值。 但是当我写的时候:

square(list(20))

它会引发错误“地图对象不能被解释为整数”,每当我删除上面的一个函数并运行另一个函数时,它都会完美运行,我不知道我犯了什么错误。

【问题讨论】:

    标签: python-3.x function functional-programming


    【解决方案1】:

    你重新定义了标准函数list()!将其重命名为 my_list() 并相应地清理代码。

    附带说明,您的函数 list() 正在做的正是 list(range(n)) 会做的事情。为什么你需要它?事实上,对于大多数用途(包括您的示例),单独使用 range(n) 就足够了。

    最后,您不要将函数作为参数传递。您传递另一个函数生成的值。不一样。

    【讨论】:

    • 好吧,我不知道你可以重新定义 list() 函数,我知道 list(range(n)) 会更简单,但我只是想举一个例子来说明我的问题。谢谢...
    猜你喜欢
    • 2022-01-11
    • 2016-07-21
    • 1970-01-01
    • 2018-11-13
    • 2018-07-30
    • 1970-01-01
    • 2013-03-20
    • 2013-07-10
    相关资源
    最近更新 更多