装饰器
定义:不改变原函数的情况下,给函数增加额外的功能,就是一个闭包
优点 1. 不修改原有代码 2. 不更改原有代码的调用方式 3. 给函数增加额外的功能
闭包: 就是一个函数的双层嵌套,内层函数使用外层函数的变量,且外层函数返回内层函数
闭包
# 定义外层函数
def func_1(numi):
# 定义内层函数
def func_2(num2):
# 内层函数使用外层函数的变量
result = num1 + num2
# 打印结果
print(result)
# 返回内层函数
return func_2
装饰器
# 模拟一个登陆验证的装饰器
def func_1(fn):
print('装饰器被执行了')
def func_2(*args, **kwargs):
print('请先登陆')
fn(*args, **kwargs)
return func_2
# 装饰器的调用方法: 语法糖
@func_1
def demmont():
print('发表评')