7.1 闭包函数

7.1 闭包函数

闭: 关闭,封闭
包:包裹,包含

闭包函数打破层级关系,把局部变量拿到全局使用,并且可以把外部变量x封装到f2中,下次不需要再调用直接使用且不会受到全局变量影响。

def f1(x):
    #x=3
    def f2():
        print(x)

    return f2

x=10

f2=f1(3)
f2()

x=8
f3=f1(5)
f3()

#全局中相同名字的变量不会影响局部变量
3
5
# 爬虫
#获取网址

import requests #相当于浏览器

#写法1
response=requests.get('https://i.cnblogs.com/posts') #拿到响应信息
response.encoding='gb123112'
data=response.text #拿到文本
print(data)
#写法2
import requests

def spider(url):
    response=requests.get(url)

    return response

spider('https://www.baidu.com')
spider('https://www.baidu.com')
spider('https://www.baidu.com')

spider('https://www.python.org')
spider('https://www.python.org')
spider('https://www.python.org')
#写法3
import requests
def outter(url):
    def spider():
        response=requests.get(url)
        print(response.status_code)
        
        return response
        
    return spider

baidu=outter('https://www.baidu.com')

baidu()
baidu()
baidu()
200

<Response [200]>

写法3明显更简洁易懂

posted @ 2025-08-22 14:04  bokebanla  阅读(3)  评论(0)    收藏  举报