闭包的基本概念: 闭包 内层函数对外层函数的变量(不包括全局变量)的引用,并返回,这样就形成了闭包

 

闭包的作用:当程序执行时,遇到了函数执行,它会在内存中开辟一个空间,如果这个函数内部形成了闭包,

那么他就不会随着函数的执行结束而消失

 

闭包的基本例子

def wrapper():
    name = 'alex'
    def inner():
        print(name)  #inner函数引用了name函数,形成了闭包
    print(inner.__closure__)
    return inner()

wrapper()

name = 'alex'
def wrapper(n):
    #将全局变量传递到函数中相当于在wrapper函数内创建:n = 'alex'
    def inner():
        print(n)
    print(inner.__closure__)  # 因此inner 也是闭包
    return inner
wrapper(name)

 

闭包在爬虫中的基本使用, 爬完一次以后,他不会随着程序的结束而消失,因为下次使用时不需要再开辟空间

from urllib.request import urlopen
def index():
    url = 'http://www.xiaohua100.cn/index.html'
    def get():
        return urlopen(url).read()
    return get



xiaohua = index()
content = xiaohua()
print(content.decode('utf-8'))

 

posted on 2018-08-17 15:49  python我的最爱  阅读(176)  评论(0编辑  收藏  举报