装饰器的介绍
装饰器的介绍
装饰器的作用
在不改变原有函数的源代码的情况下,给函数增加新的功能。
装饰器的功能特点:
- 不修改已有函数的源代码
- 给已有函数增加额外的功能
装饰器符合开发中的封闭开放原则。
装饰器的格式
装饰器的语法格式:
def decorator(fn): # fn: 被装饰的目标函数
def inner():
'''执行函数之前'''
fn() # 执行被装饰的目标函数
'''执行函数之后'''
return inner
问题:怎么能够在不修改comment函数的前提下给它增加验证功能?
def comment():
print('发表评论....')
使用步骤
- 定义一个装饰器(本质是闭包)
- 使用装饰器装饰函数
# 1. 定义一个装饰器(装饰器本质是闭包)
def check(fn):
def inner():
print('登录验证....')
fn()
return inner
# 需要被装饰的函数
def comment():
print('发表评论....')
# 2. 使用装饰器来装饰函数(增加一个登录功能)
comment = check(comment)
comment()