Discuss / Python / 普通做法了。。。在第一层函数内判断输入类型,然后再分别2层,3层的写法

普通做法了。。。在第一层函数内判断输入类型,然后再分别2层,3层的写法

Topic source

本来想在第二层或者第三层里面用逻辑判断看怎么实现的

奈何一直报错,可能现在理解还不够深吧

代码如下:

from functools import wraps

def log(input):

    button = isinstance(input, str)

    if button:

        def decorator(f):

            @wraps(f)

            def wrapper(*args):

                print('%s: %s' % (input, f.__name__))

                r = f(*args)

                return r

            return wrapper

        return decorator

    else:

        @wraps(input)

        def wrapper(*args):

            print("begin call: %s" % (input.__name__))

            r = input(*args)

            print("end call: %s" % (input.__name__))

            return r

        return wrapper

#测试

@log('execute')

def fa(a):

    print(a)

fa(111111)

@log

def fb(a):

    print(a)

fb(22222)


  • 1

Reply