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 ,这个就是装饰器的优势!!