python入门与进阶(12-12)

2018-05-17  本文已影响6人  buaishengqi

12-12 装饰器 五

# 12-12 装饰器 五

import time

def decorator(func):#定义装饰器的外部函数
    def wrapper(*args):#可变参数
        print(time.time())
        func(*args)
    return wrapper 
@decorator
def f1(func_name):#此时的f1没有传入任何参数,那么如果有参数传入装饰器需要做哪些改变?
    print('this is a function named' + func_name)

@decorator
def f2(func_name1,func_name2):#此时的f1没有传入任何参数,那么如果有参数传入装饰器需要做哪些改变?
    print('this is a function named' + func_name1)
    print('this is a function named' + func_name2)

@decorator#若将这个屏蔽,打印结果是正确的,若不屏蔽是错误的,如何修改?!!
def f3(func_name1,func_name2,**kw):#定义一个关键字参数
    print('this is a function named' + func_name1)
    print('this is a function named' + func_name2)
    print(kw)
f1('test func')
f2('test func1','test func2')
f3('test func1','test func2',a = 1,b = 2,c = '123')

# f = decorator(f1)加上@语法糖以后,这部分可以省略了
f1('test func')#直接调用f1 ,这个就是装饰器的优势!!




import time

def decorator(func):#定义装饰器的外部函数
    def wrapper(*args,**kw):#可变参数
        print(time.time())
        func(*args,**kw)
    return wrapper 
@decorator
def f1(func_name):#此时的f1没有传入任何参数,那么如果有参数传入装饰器需要做哪些改变?
    print('this is a function named' + func_name)

@decorator
def f2(func_name1,func_name2):#此时的f1没有传入任何参数,那么如果有参数传入装饰器需要做哪些改变?
    print('this is a function named' + func_name1)
    print('this is a function named' + func_name2)

@decorator#若将这个屏蔽,打印结果是正确的,若不屏蔽是错误的,如何修改?!!
def f3(func_name1,func_name2,**kw):#定义一个关键字参数
    print('this is a function named' + func_name1)
    print('this is a function named' + func_name2)
    print(kw)
f1('test func')
f2('test func1','test func2')
f3('test func1','test func2',a = 1,b = 2,c = '123')

# f = decorator(f1)加上@语法糖以后,这部分可以省略了
f1('test func')#直接调用f1 ,这个就是装饰器的优势!!
上一篇下一篇

猜你喜欢

热点阅读