python之装饰器

root
abc abc
  • 6 Aug

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"))