码迷,mamicode.com
首页 > 编程语言 > 详细

python装饰器

时间:2018-06-12 17:08:36      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:分享   调用   inner   test   pre   .com   功能   ima   TE   

1.预备知识:

1 def Test01():
2     print(------Test1----------------)
3 def Test01():
4     print(------------Test02---------)
5 Test01()
6 # 结果为:------------Test02---------

 如下图所示:我们可以将函数名理解为变量名,将函数理解为一个具体的变量,定义函数时,函数名与函数的关系理解为一种赋值的关系,即就是把这个函数赋值给了对应的函数名;而在内存中一个变量只能表示或者说指向一块内容

技术分享图片

2.原理代码示例:

# 定义装饰器函数
def decorate(func):
    def inner():
        print(-------你在干什么?----------)
        func()
    return inner
# 定义功能函数
def play():
    print(-------我正在玩游戏------------)
Test = decorate(play)
Test()
# 执行结果为:
# -------你在干什么?----------
# -------我正在玩游戏------------

 

通过下图1-5步来解释上述函数的调用过程,并引出装饰器 

技术分享图片

3.装饰器代码示例:

 1 # 装饰器函数
 2 def decorate(func):
 3     def inner():
 4         print(-------你在干什么?----------)
 5         func()
 6     return inner
 7 @decorate # 等价于上图中分析的play=decorate(play)
 8 def play():
 9     print(-------我正在玩游戏------------)
10 # 调用play函数
11 play()
12 
13 # 结果为:
14 # -------你在干什么?----------
15 # -------我正在玩游戏------------

 

python装饰器

标签:分享   调用   inner   test   pre   .com   功能   ima   TE   

原文地址:https://www.cnblogs.com/houzichiguodong/p/9173874.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!