Python 好迷啊
Topic source(1)内层函数f()并没引用外层函数的参数i、j,故f()的结果与i、j无关
(2)i和j的值在这句”f1, f2, f3 = count()“执行后,就被固定为3了,即在函数f1(), f2(), f3()调用前就成型了
- 1
(1)内层函数f()并没引用外层函数的参数i、j,故f()的结果与i、j无关
(2)i和j的值在这句”f1, f2, f3 = count()“执行后,就被固定为3了,即在函数f1(), f2(), f3()调用前就成型了
小小事界
请问大家为何加了 j=i,结果还是9 9 9 ?i 在每次迭代中是在变的,j 为何也会变呢?难道 j 的作用域不是在一个迭代内吗?
def count():
fs = []
for i in range(1, 4):
j = i
def f():
return j**2
fs.append(f)
return fs
f1, f2, f3 = count()
print(f1(), f2(), f3()) # 9 9 9