from datetime import datetime
def funA(fn): print(" 中国人民大学报表") fn() # 执行传入的fn参数 now = datetime.now() formatted_time = now.strftime("%Y年%m月%d日 %H:%M:%S") print(f" 报表生成时间:{formatted_time}") return "装饰器函数的返回值" @funA def funB(): print("报表实际数据1.....") print("报表实际数据2.....") print("报表实际数据3.....") print("报表实际数据4.....")
'''上代码中的: @funA def funB(): print("报表实际数据1.....") print("报表实际数据2.....") print("报表实际数据3.....") print("报表实际数据4.....")
完全等价于: def funB(): print("报表实际数据1.....") print("报表实际数据2.....") print("报表实际数据3.....") print("报表实际数据4.....")
funB=funA(funB) '''
def ff(fn): def f2(arg): return "表头\n"+fn(arg)+"\n表尾\n" return f2 @ff def f3(data): return "数据:"+data
print(f3("Hello"))
python之装饰器
from datetime import datetime
funA 作为装饰器函数
def funA(fn):
print(" 中国人民大学报表")
fn() # 执行传入的fn参数
now = datetime.now()
formatted_time = now.strftime("%Y年%m月%d日 %H:%M:%S")
print(f" 报表生成时间:{formatted_time}")
return "装饰器函数的返回值"
@funA
def funB():
print("报表实际数据1.....")
print("报表实际数据2.....")
print("报表实际数据3.....")
print("报表实际数据4.....")
funB=funA(funB)
print(funB)
'''上代码中的:
@funA
def funB():
print("报表实际数据1.....")
print("报表实际数据2.....")
print("报表实际数据3.....")
print("报表实际数据4.....")
完全等价于:
def funB():
print("报表实际数据1.....")
print("报表实际数据2.....")
print("报表实际数据3.....")
print("报表实际数据4.....")
funB=funA(funB)
'''
print(funB)
装饰器函数示例之二
def ff(fn):
def f2(arg):
return "表头\n"+fn(arg)+"\n表尾\n"
return f2
@ff
def f3(data):
return "数据:"+data
f3=ff(f3)
print(f3("Hello"))