首页 > 技术文章 > 闭包函数

Mr-shen 2019-11-12 20:11 原文

闭包函数

定义

封闭的包裹,内层函数被外层函数包裹起来,内层函数可以引用外层函数的名字

1、闭包函数必须在函数内部定义

2、闭包函数可以引用外层函数的名字

闭包函数是 函数的嵌套、函数对象、名称空间与作用域的结合体

----为了装饰器做准备的

def index(x):  # 将x作为变量传入外层形参中,调用可传入任意x
    # x=100 # 这样会写死,调用时无法修改
    # func就是闭包函数
    def func():
        print(x)
    return func
res = index(100) # 得的index执行后的返回值func
res()  # 相当于调用func

应用

import requests
def res(url):
    def inner():
        respond = requests.get(url)
        if respond.status_code == 200:  # 状态码是200,返回正常
            print(len(respond.text))
    return inner
func = res("https://www.cnblogs.com/Mr-shen/") # 得到的是inner的内存地址
func()

推荐阅读