装饰器好玩! 思考题一,我用了两个装饰器,一个记录头,一个记录尾
Topic source题目要求写一个装饰器完成这个任务,我想了想,把@loghead和@logtail用装饰器log组合成一个使用
命名为log,下面是代码:
# -*- coding: utf-8 -*-
def loghead(fn):
def wrapper(*args,**kw):
print("begein call")
return fn(*args,**kw)
return wrapper
def logtail(fn):
def wrapper(*args,**kw):
res = fn(*args,**kw)
print("end call")
return res
return wrapper
def log(fn):
def wrapper(*args,**kw):
@loghead
@logtail
def f(*args,**kw):
return fn(*args,**kw)
return f()
return wrapper
@log
def hello():
print("Hello")
hello()
- 1
正晓恰好出生在早晨
def loghead(fn):
def wrapper(*args,**kw):
print("begein call")
return fn(*args,**kw)
return wrapper
def logtail(fn):
def wrapper(*args,**kw):
res = fn(*args,**kw)
print("end call")
return res
return wrapper
@loghead
@logtail
def hello():
print("Hello")
hello()