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

python装饰器

时间:2019-01-04 21:35:05      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:strong   bsp   turn   style   UNC   war   代码   就是   拓展   

装饰器的作用:可以在不修改原函数代码的情况下给该函数拓展一些功能。装饰器完美诠释了“开放封闭原则”

"开放封闭"原则:

已经写好的代码, 尽可能不要修改(对函数的内的代码 封闭原则)

如果想要新增功能, 在原先代码基础上, 单独进行扩展(对函数功能的拓展 开放原则)

# 装饰器标准版
def check_login(func):
    def inner(*args, **kwargs):   # 函数定义* **代表聚合
        # 被装饰函数执行前的代码
        ret = func(*args, **kwargs)     # 函数调用* **代表打散
        # 被装饰函数执行后的代码
        return ret  # 被装饰函数的返回值
    return inner


# @check_login 相当于 func1 = check_login(func1),
#  此时的func1 = inner,再调用func1时,相当于执行inner()
# func1 = check_login(func1)    # 相当于装饰器的操作
# func1()   # 此时执行的是check_login(func1)的返回值也就是执行inner函数,相当于inner()
@check_login
def func1(x, y):
    # print(x, y)
    return x, y


r = func1(1, 3)
print(r)

 

python装饰器

标签:strong   bsp   turn   style   UNC   war   代码   就是   拓展   

原文地址:https://www.cnblogs.com/chen55555/p/10222210.html

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