闭包
# 规定闭包:
# 1. 函数嵌套
# 2. 内函数使用外函数的变量
# 3. 外函数的返回值是内函数
# 闭包条件:(我理解的)
# 1.函数嵌套
# 2.外函数的返回值=内函数 注意返回值不能写括号,现在不写,是为了在调用时写
def A(y):
def B():
return y + 1
return B
# 错误
# print(A())
# 正确
ls = A()
print(ls())
装饰器
python装饰器的作用就是在不想改变原函数代码的情况下,增加新的功能.主要应用了python闭包的概念
def wrapper(func):
def inner(*args, **kwargs):
'''执行被装饰函数之前的操作'''
print("-" * 10)
ret = func(*args, **kwargs)
'''执行被装饰函数之前后的操作'''
print("-" * 10)
'''注意:返回值会被最后执行'''
return ret
return inner
@wrapper
def A(a, b):
print("执行中", a + b)
return a + b
print(A(1, 2))