以前学swift的时候一直不理解明白闭包 现在想了下就是用来生成特定配置函数的函数 最简单就是 def f1(a): def b(): return a return b
f = f1(5) #生成一个返回5的函数 f2 = f1(10) #生成一个返回10的函数 print(f() + 5) #得出10 print(f() + 5) #得出15
所以不用重复写不同的函数来满足类似算法的函数 不知道这个理解方式有没有错
这应该是没有闭包吧
有闭包,但是用处不大
改成
def f1(a): def b(): return N(a) # 算阶乘 return b
这样实现的就是延迟计算
f = f1(1000) # 还没计算出 1000! if needCalculate(): r = f() # 现在计算
Sign in to make a reply
燊燊燊燊燊燊O_O
以前学swift的时候一直不理解明白闭包 现在想了下就是用来生成特定配置函数的函数 最简单就是 def f1(a): def b(): return a return b
f = f1(5) #生成一个返回5的函数 f2 = f1(10) #生成一个返回10的函数 print(f() + 5) #得出10 print(f() + 5) #得出15
所以不用重复写不同的函数来满足类似算法的函数 不知道这个理解方式有没有错