Python的闭包我理解了 但是有段代码 执行了流程我实在很纳闷 所以求各位帮忙看下
下面的代码就有些难以理解了 百度了一大堆 也没有人说为啥,。就是全部交付代码 什么也不说
|
Python的闭包我理解了 但是有段代码 执行了流程我实在很纳闷 所以求各位帮忙看下
下面的代码就有些难以理解了 百度了一大堆 也没有人说为啥,。就是全部交付代码 什么也不说
|
如果你真的理解了第一组代码输出都是9的原因,以及必包,那第二组代码很好理解啊。 首先05 行代码没有运行。至于14行的问题,我们从头说 python从上到下预处理你顶层函数,13行开始执行,执行 count() 函数,进入count() 函数继续预处理顶层函数,在08行开始执行,创建一个空列表 fs,迭代第一次,i=1,fs列表添加的元素是一个以 i 为参数的函数 f() ,程序进入函数 f(i) ,预处理 g() 函数,返回调用对象 g,添加到 fs 列表中,完成一次迭代。继续执行第二次第三次迭代。返回 fs 列表,之后将列表 fs 内的元素拆包给三个变量 f1, f2, f3,然后继续向下执行,15行 print()函数,执行f1() 。 |