Discuss / Python / 越发的难了~

越发的难了~

Topic source

執謎卜誤

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

第一题:

import functools

def log(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print('%s %s():' % (text, func.__name__))
            def func1(para_func):
                para_func(*args, **kw)
                print('end call %s()' % func.__name__)
                return None
            return func1(func)
        return wrapper
    return decorator

第二题:

二者都能用,就是有参可以代入任意'execute'字符串,无参就是固定的了

import functools

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

  • 1

Reply