@decorator
在代码的开始添加
装饰器有什么作用呢?为什么要是用装饰器,不用行不行?
锦上添花,高级操作
当我们要为函数拓展新的功能,但是又不想修改函数的内部结构时,那么就可以通过装饰器来完成!
开闭原则: 对于扩展是开放的,对于修改是封闭的 !
# import time
#
# def decorator(func):
# def wrapper():
# print(time.time())
# func
# return wrapper
#
# def f():
# print("this is f")
#
# d=decorator(f)
# d()
import time
def decorator(func):
def wrapper(*args,**kwargs):
print(time.time())
func(*args,**kwargs)
return wrapper
@decorator
def f(n):
print("this is f" + n)
@decorator
def f2(n,m):
print("this is f2" + n + m)
f('.')
f2('.','!')
说明:
*args,**kwargs 可变参数,当你不知道要传入的参数个数的时候,*args 可变元组, **kwargs 可变字典 key , value