码迷,mamicode.com
首页 > 编程语言 > 详细

python-易错问题

时间:2019-08-04 21:13:26      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:接收参数   变化   问题   变量   解析   结果   int   src   append   

1.看程序写结果:

li = []
for i in range(3):
    def func(x):
        print(x*i)
    li.append(func)

for func in li:
    func(2)

技术图片
结果:

4
4
4

将它改成我们想要的结果(上述的代码):我们想到的结果是0,2,4

# 解析:如果想要将结果变成0,2,4的话,则说明对应的i是随着迭代次数的变化是在变化的,则就需要一个变量去接收这个变量,将变量带入到print中里面,这样每次的i都是在变化的,在print中里面
li = []
for i in range(3):
    def func(x, y=i):  # 接收参数i,
        print(x*y)  # 开辟的内存的函数是不一样的
    li.append(func)

for func in li:
    func(2)

技术图片
结果是:

0
2
4

python-易错问题

标签:接收参数   变化   问题   变量   解析   结果   int   src   append   

原文地址:https://www.cnblogs.com/yangchangjie150330/p/10537498.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!