Discuss / Python / 看了前面的代码,我也来敲一个

看了前面的代码,我也来敲一个

Topic source
def logBoth(arg):
    if isinstance(arg,str):#传入的是字符串
        def decorator(func):
            def wrapper(*args,**kw):
                print(arg," before call")
                func(*args,**kw)
                print(arg,'  end call')
            return wrapper
        return decorator
    else:#传入的是函数名
        def wrapper(*args,**kw):
            print("before call")
            arg(*args,**kw)
            print("end call")
        return wrapper


@logBoth('xixi')
def now():
    print("in now() ...2015-06-15")

now()

@logBoth#logBoth(now)()
def now():
    print("in now() ...2015-06-15")
now()

有个疑问:定义的wrapper函数里没有return语句也可以呀,这样合法么?


  • 1

Reply