1、装饰器原理
import time
# 定义一个装饰器函数
def sayLocal(func):
def wrapper():
curTime = func()
return f'当地时间: {curTime}'
return wrapper
def getXXXTime():
return time.strftime('%Y_%m_%d %H:%M:%S',time.localtime())
# 装饰 getXXXTime
getXXXTime = sayLocal(getXXXTime)
print (getXXXTime())
2、使用
import time
def sayLocal(func):
def wrapper():
curTime = func()
return f'当地时间: {curTime}'
return wrapper
@sayLocal
def getXXXTime():
return time.strftime('%Y_%m_%d %H:%M:%S',time.localtime())
print (getXXXTime())
3、带参装饰器
import time
def sayLocal(func):
def wrapper(*args,**kargs):
curTime = func(*args,**kargs)
return f'当地时间: {curTime}'
return wrapper
@sayLocal
def getXXXTimeFormat1(name):
curTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
return f'{curTime} ,数据采集者:{name} '
@sayLocal
def getXXXTimeFormat2(name,place):
curTime = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
return f'{curTime} ,数据采集者:{name} , 采集地:{place}'
print (getXXXTimeFormat1('张三'))
print (getXXXTimeFormat2('张三',place='北京'))