Discuss / Python / 装饰器好玩! 思考题一,我用了两个装饰器,一个记录头,一个记录尾

装饰器好玩! 思考题一,我用了两个装饰器,一个记录头,一个记录尾

Topic source

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

题目要求写一个装饰器完成这个任务,我想了想,把@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

Reply