毕业设计怎么办 发表于 2020-3-21 21:13:11

求大佬指教,闭包如何一次传递多个参数?

def Fun1(x1):

    #设置两个同级内置函数
    def Fun2(y):
      return x1 * y

    def Fun3(z):
      return x1 * z

    #同时返回两个结果:x1*y, x1*z
    return Fun2(y),Fun3(z)

y = 1
z = 1

print(Fun1(2))

此时传递成功,结果为:(2,2)

那么如果返回的不是两个结果,而是返回两个函数,该如何同时传递参数呢?
def Fun1(x):

    def Fun2(y):
      return x * y

    def Fun3(z):
      return x * z

#返回两个函数,而非返回两个函数的值
    return Fun2,Fun3

#print(?)

sunrise085 发表于 2020-3-21 23:10:39

返回两个函数,那就用两个变量接收呗。
def Fun1(x):

    def Fun2(y):
      return x * y

    def Fun3(z):
      return x * z

    return Fun2,Fun3

print(Fun1(5))#返回的是一个元组,是两个函数地址
c=Fun1(3)   #需要用两个变量或者一个元组接收
print(c(4))
print(c(8))

毕业设计怎么办 发表于 2020-3-22 16:14:30

sunrise085 发表于 2020-3-21 23:10
返回两个函数,那就用两个变量接收呗。

老哥,怎么像你这样把代码直接截过来呀,好好看!求指教!{:10_257:}

sunrise085 发表于 2020-3-22 19:19:34

发帖时,输入区域上方有各种工具,发图片,发链接,发代码等等。有一个这样的符号是发代码用的“<>”
页: [1]
查看完整版本: 求大佬指教,闭包如何一次传递多个参数?