|
本帖最后由 夏鸥 于 2019-4-18 15:16 编辑
Python的闭包我理解了 但是有段代码 执行了流程我实在很纳闷 所以求各位帮忙看下- def count():
- fs = []
- for i in range(1, 4):
- def f():
- return i*i
- fs.append( f )
- return fs
- f1, f2, f3 = count()
- #这段代码我理解的。因为 在执行 f1(),f2(),f3()的时候 找到的i值为 3所以都是9
- print('f1的结果是:' ,f1())
- print('f2的结果是:' ,f2())
- print('f3的结果是:' ,f3())
复制代码 这个代码我是理解了的。
下面的代码就有些难以理解了 百度了一大堆 也没有人说为啥,。就是全部交付代码 什么也不说
- def count():
- def f(j):
-
- def g():
- return j*j #这里的代码被先执行了吗?
-
- return g
- fs = []
- for i in range(1, 4):
- fs.append( f( i ) )
- return fs #那这里的代码又是返回了 谁呢?
- f1, f2, f3 = count()
- #这里的我就有点纳闷了。 是因为 f(i) 执行了函数 g()么?
- print('f1的结果是:' ,f1())
- print('f2的结果是:' ,f2())
- print('f3的结果是:' ,f3())
复制代码
|
|