发布网友 发布时间:2022-04-21 18:55
共1个回答
热心网友 时间:2022-04-18 07:17
因为python具有late binding的机制——闭包中内部函数的值只有在被调用时才会确定,等到f1,f2,f3调用时,此时闭包中f()函数的i已经等于3了,于是所有结果等于9.
如果想得到你要的结果,就得提前把i作为参数传入,把原先的def f():所在行修改为def f(i=i)即可,其中等号左边的i是形参,等号右边的i是for in 循环中对应的i
def count():输出