1.概念
闭包就是指有权访问另一个函数作用域中的变量的函数。
2.如何实现闭包
创建闭包最常见方式,就是在一个函数内部创建另一个函数。
常见形式: 内部函数使用了外部函数的临时变量,且外部函数的返回值是内部函数的引用。 闭包的一个常用场景就是装饰器。
3.闭包要满足的三个条件
1.函数里面嵌套函数
2.内部函数使用外部函数的变量
3.外部函数的返回值被内部函数引用(函数名)
def timeit(name):
def wrapper(): #定义函数不执行里面的代码,调用函数时才执行里面的代码
print(name)
return 'ok'
return wrapper
result = timeit("westos")
print(result)
def timeit(name):
def wrapper():
print(name)
return 'ok'
return wrapper
result = timeit("westos") #调用timeit函数,函数的返回值是wrapper函数引用
result1 = result() 调用
print(result1)
4.优点
闭包也具有提高代码可复用性的作用。