Discuss / Python / 我觉得如果要在函数执行前执行后打印log,借助try-catch呗

我觉得如果要在函数执行前执行后打印log,借助try-catch呗

Topic source

栋能哥哥

#1 Created at ... [Delete] [Delete and Lock User]
def log(text):
    if not isinstance(text,str):
        @functools.wraps(func)
        def wrapper(*arg, **map):
            try:
                print("start 1...")
                return text(*arg, **map)
            except:
                print("error")
            finally:
                print("end...")
        return wrapper
    else:
        def decorate(func):
            @functools.wraps(func)
            def wrapper(*arg, **map):
                try:
                    print("text:%s" % text)
                    print("start 2...")
                    return func(*arg, **map)
                except:
                    print("error")
                finally:
                    print("end...")
            return wrapper
        return decorate

# @log
@log("execute")
def test2():
    print("code running ... test2")
    # print(5/0)
    print("...")

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

try-catch不是让你干这种事情的


  • 1

Reply