码迷,mamicode.com
首页 > 其他好文 > 详细

19 装饰器进阶

时间:2018-09-15 18:20:50      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:开心   param   print   函数名   添加   tools   span   查看   装饰器   

#复习装饰器
def wrapper(func):
    def inner(*args,**kwargs):
        print(在此添加调用前代码)
        ret = func(*args,*kwargs)
        print(在此添加调用后代码)
        return ret
    return inner

@wrapper
def holiday(day):
    print(全体放假 %s 天 % day)
    return 好开心

ret = holiday(3)
print(ret)
‘‘‘
在此添加调用前代码
全体放假 3 天
在此添加调用后代码
好开心
‘‘‘
def outer(*args,**kwargs):
    print(args)                     #(1, 2, 3, 4)
    print(*args)                    #1 2 3 4
    def inner(*args):
        print(inner:,args)       #inner: (1, 2, 3, 4)
    inner(*args)

outer(1,2,3,4)
#
outer(*[1,2,3,4])
#
outer(*(1,2,3,4))
def wahaha():
    ‘‘‘
    一个打印娃哈哈的函数
    :return:
    ‘‘‘
    print(娃哈哈)

print(wahaha.__name__)  #查看函数名     wahaha
print(wahaha.__doc__)   #查看注释文档
#带参数的装饰器
from functools import wraps     #调用一个装饰函数
def wrapper(func):
    @wraps(func)                 #装饰函数
    def inner(*args,**kwargs):
        print(在此添加调用前代码)
        ret = func(*args,*kwargs)
        print(在此添加调用后代码)
        return ret
    return inner

@wrapper
def holiday(day):
    ‘‘‘
    这是一个放假通知
    :param day:
    :return:
    ‘‘‘
    print(全体放假 %s 天 % day)
    return 好开心

ret = holiday(3)
print(ret)
print(holiday.__name__)         #holiday
print(holiday.__doc__)
#    这是一个放假通知
#    :param
#    day:
#    :return:

 

19 装饰器进阶

标签:开心   param   print   函数名   添加   tools   span   查看   装饰器   

原文地址:https://www.cnblogs.com/bydzxzy/p/9651550.html

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