Discuss / Python / 用户“交作业”写的不对

用户“交作业”写的不对

Topic source

嘿嘿matrix

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

你的写法是错误的,对于

@log
def f():
    print('无参数')
f()
print(f.__name__)

就会报错,因为认为缺少参数

正确的写法如下:

def log(text):
    if isinstance(text, (str, int, float)):
        def decorator(func):
            @functools.wraps(func)
            def wrapper(*args, **kw):
                print('start %s %s():' % (text, func.__name__))
                result = func(*args, **kw)
                print('end %s %s():' % (text, func.__name__))
                return result
            return wrapper
        return decorator
    else:
        func = text
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print('start call %s():' % func.__name__)
            result = func(*args, **kw)
            print('end call %s():' % func.__name__)
            return result
        return wrapper

请问else语句func=text什么意思


  • 1

Reply