首页 新闻 搜索 专区 学院

Python小白求解答

0
[已解决问题] 解决于 2021-08-12 16:55
flist = []  
for i in range(3):  
    def foo(x): 
    print (x + i ) flist.append(foo) for f in flist: f(2)
1、f(2)含义
2、看解释是说是因为当把函数加入flist列表里时,python还没有给i赋值,
只有当执行时,再去找i的值是什么,这时在第一个for循环结束以后,i的值是2,
所以以上代码的执行结果是4,4,4,没有看明白
自在小小的主页 自在小小 | 菜鸟二级 | 园豆:202
提问于:2017-08-17 14:26
< >
分享
最佳答案
0


flist.append(lambda x:print(x+0))
flist.append(lambda x:print(x+1))
flist.append(lambda x:print(x+2))
for f in flist:
    f(2)

>>> 2 3 4

奖励园豆:5
大兄弟竹子 | 初学一级 |园豆:55 | 2017-08-18 16:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册