微信号:grzlwx

介绍:光荣之路官方资讯

代码每天见:Python开发者最常犯的10个错误(六)

2016-02-19 23:08 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

相关阅读

Python开发者最常犯的10个错误(一)

Python开发者最常犯的10个错误(二)

Python开发者最常犯的10个错误(三)

Python开发者最常犯的10个错误(四)

Python开发者最常犯的10个错误(五)

6.如何在闭包中绑定变量

  看下面这个例子:

>>> def create_multipliers():
...     return [lambda x : i * x for i in range(5)]
>>> for multiplier in create_multipliers():
...     print multiplier(2)
...

  你期望的结果是:

<code>0
2
4
6
8</code>

  实际上:

<code>8
8
8
8
8</code>

  是不是非常吃惊!出现这种情况主要是因为Python的后期绑定行为,该变量在闭包中使用的同时,内部函数又在调用它。

  解决方案:

>>> def create_multipliers():
...     return [lambda x, i=i : i * x for i in range(5)]
...
>>> for multiplier in create_multipliers():
...     print multiplier(2)
...
0
2
4
6
8

<未完待续>

(作者:juggd 来源:http://www.cnblogs.com/rrxc/p/4664462.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 对话Python之父:Python下一步做什么? 手把手教你用 Strace 诊断问题 | 运维技巧 双11前来三个case的分享 AndFix从入门到放弃 分页查询的那些坑和各种技巧