初识闭包
首先,闭包是一个嵌套函数,内部函数对外部函数变量进行调用,外部函数的返回值是内部函数名
内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数
def func(): a = 1 def inner(): print(a)
return inner
ret = func()
ret()#1
闭包可以实现先将一个参数传递给一个函数,而并不立即执行,以达到延迟求值的目的。
每一次调用函数,函数里面的变量都会频繁的创建消失,都需要花费时间
from urllib.request import urlopen def func(url): ret = urlopen(url) print(ret.read()) func("https://i.cnblogs.com/EditPosts.aspx?opt=1") 每次调用这个函数的话,就会运行一次,所以闭包的好处就体现出来了 可以先传递参数给函数,但并不立即执行,而且节省内存 def func(): url = "https://i.cnblogs.com/EditPosts.aspx?opt=1" def inner(): return urlopen(url).read() return inner ret = func() s = ret.read() print(s)