易截截图软件、单文件、免安装、纯绿色、仅160KB

关于python 闭包的一个问题(闭包有点难理解)

python 核心编程(第二版) 中 ,11.8.4 闭包有个例子

def counter(start_at=0):
count = [start_at]
def incr():
count[0] += 1
return count[0]
return incr

难道其中count[] 一定要是列表吗?改成了count(如下)就不能运行了吗?

def counter(start_at=0):
count = start_at
def incr():
count += 1
return count
return incr

有高手知道这是为什么吗?
怎么没人会这个问题吗


闭包我也看不懂有啥作用,不过总的没啥关系吧,应该说是python的特性吧,当你在incr里count += 这个时候count就成了局部变量,而不是counter里那个,讷么+=之前你要先count=啥的。不过counter是个函数,你又不好用global或者类的.操作符去界定它的count变量,那么用个可变的list似乎就顺里成章,因为只对它的元素操作,那么incr的count还是等同counter里那个。


nonlocal没用过的说,还蹲在2.x里...

引用

难道其中count[] 一定要是列表吗?改成了count(如下)就不能运行了吗?

def counter(start_at=0):
count = start_at
def incr():
count += 1
return count
return incr




incr里没有global counter 的话,改不了counter,只能读,

试试下面的例子就知倒

count = 1
def incr():
    count += 1  # error
    return count

print incr()


在比较这个

count=[1]
def incr():
   


相关问答:

开始学习python, 大家多多指点

刚刚买了一本《Python核心编程》,开始学习python。大家多多指教

电子书就很多。。。

《Python核心编程》这书的第一版还是不错的,第二版很不咋的,真的。

个人的意见是:初学用《Dive in Python》, ......

python urllib urllib2 httplib 访问url的问题

我想用python解析网页中的url 在下载之前, 我想先发一个head请求 不需要下载整个网页, 先获得该网站的head信息, 读取一些信息之后 在调用这些库的read方法来读取整个网页 该怎么操作呢 多谢
帮顶了

有人能指教一 ......

python 图像多边形切割

python的PIL库自带的方法只能进行矩形的切割,如果我有了一个多边形各个顶点的坐标,如何对现有的图片按照这个多边形进行切割呢?
不一定要用PIL库,任何能实现这个功能的方法都行。

图片切割的js不是很多吗?
......

【求助】关于python中字节数组转换成字符串

由于是初学,在些请教大家。

Python code:

from urllib import request
import struct
class csdn:
def __init__(self):
print ('Hello,this is a init')
def getContent(self,url) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号