Discuss / Python / 拓展的最后一题,一个log函数,实现log() 和 log('dddd')两者形式

拓展的最后一题,一个log函数,实现log() 和 log('dddd')两者形式

Topic source

我这个有一点不一样,log必须得有括号才行,其实就是设了一个默认为空的参数。

import functools

def log(text=''):

    def decorator(fn):

        @functools.wraps(fn)

        def warpper(*args,**kw):

            if text != '':

                print("%s,call %s()" % (text, fn.__name__))

            else :

                print("non text,call %s" % fn.__name__)

            return fn(*args,**kw)

        return warpper

    return decorator

@log()

def fn():

    print("Test run")

fn()


  • 1

Reply