菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
78
0

装饰器

原创
05/13 14:22
阅读数 27814

定义:装饰器本身就是一个函数,用于装饰其他函数。

功能:增强被装饰函数的功能。

装饰器一般接收一个函数作为参数,以实现功能增强

 1 >>> def deco(func):#定义一个装饰器,它的参数是一个完整的函数
 2     def wrapper():#定义一个类似外包装的东西
 3         print('这是一个简单的运算')#外包装的语句
 4         func()#传入的参数,即函数
 5         print('精彩的完成了这次简单的运算')#外包装的语句
 6     return wrapper
 7 
 8 >>> @deco#指定装饰器
 9 def add():#定义被装饰的函数
10     print(1+1)
11 
12     
13 >>> add()#调用被装饰的函数
14 这是一个简单的运算
15 2
16 精彩的完成了这次简单的运算
17 
18 #分析:实际上我们只是想定义一个函数用来进行加法运算,但是我们加了装饰器用来装饰
19 #运算前后的语句,使得看上去更加完整有趣一些,这就是装饰器的由来

 

# 定义装饰器的过程
# 首先定义一个函数,传入的参数是一个函数
# 这个装饰器的名字就被称作是deco
def deco(func):
    # 定义一个外包装,外包装里面有自己定义的属于外包装本身的内容
    def wrapper():
        print('这是一个简单的运算!')
        func()#外包装包裹着被传入的函数
        print('精彩地完成了这次运算')
    # 返回外包装
    return wrapper

# 让我们来解析一下装饰器的工作过程
@deco
def add():
    print(1+1)

add()
# 首先定义一个被装饰的函数,
# 函数上面用@加入装饰器
# 这个函数就作为装饰器的参数传入
# 然后装饰器开始工作,运行装饰器本身的东西
# 遇到传入的函数时,执行函数

 

发表评论

0/200
78 点赞
0 评论
收藏
为你推荐 换一批