博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python闭包 变量问题
阅读量:6044 次
发布时间:2019-06-20

本文共 528 字,大约阅读时间需要 1 分钟。

def getadd():     count=[0]     def incr(x):         count[0]+=x         print(count[0]) return incr a=getadd() a(1) def getadd():     count=0     def incr(x):         count+=x         print(count) return incr a=getadd() a(1)

为什么第二段代码不能成功执行,会说'count' referenced before

assignment,但是第一段以列表的形式就没有问题呢?请大家指点

第二段中的 count+=x 表达式是一个赋值表达式,这会创建一个本地的count变

量,但是此表达式中又需要引用count,即count = count + x,这就是错误的由来

第一段中对count仅仅是引用,没有赋值操作,count[0]+=x 是赋值给count的第一

个元素,该元素已经存在,没有错误

转载于:https://www.cnblogs.com/moonflow/archive/2012/03/30/2425585.html

你可能感兴趣的文章
解读“统一价格分评审方法”
查看>>
28个Unix/Linux的命令行神器
查看>>
zoj3662Math Magic
查看>>
[置顶] 深圳华为BSS公共部件 (BI 商业智能 Java Javascript)
查看>>
Linux基本配置和管理 3 ---- Linux命令行文本处理工具
查看>>
HTML模板
查看>>
154. Find Minimum in Rotated Sorted Array II
查看>>
【转】老程序猿给新程序猿的13点建议
查看>>
电商网站的初期技术选型--转
查看>>
【202】ThinkPad手势&快捷键
查看>>
【iCore3 双核心板_FPGA】实验二十二:Niosii——固化程序到 EPCS 里
查看>>
Java控制台输入ScannerDemo
查看>>
HNU 11720 God Created The Integers
查看>>
iOS复杂动画之抽丝剥茧(Objective-C & Swift)
查看>>
DeviceUuidFactory【获取设备唯一标识码的UUID(加密)】【需要运行时权限的处理的配合】...
查看>>
代理服务器没有响应
查看>>
The path to the driver executable must be set by the webdriver.gecko.driver system property;
查看>>
Watir examples
查看>>
Jmeter-Maven-Plugin高级应用:Log Levels
查看>>
谷歌刷新世界纪录!2 分钟搞定 ImageNet 训练
查看>>