python带参和不带参修饰器

from functools import wraps
def my_decorator(txt=None):
    # 如果txt是str或int,则txt为带参修饰器
    if isinstance(txt, (str, int)):
        def decorator(func):
            @wraps(func)
            def wrapper1(*args, **kwargs):
                # something
                ...
            return wrapper1
        return decorator
    else:
        @wraps(txt)
        def wrapper2(*args, **kwargs):
            # do something
            ...
        return wrapper2

 

posted @ 2021-05-31 13:46  乱炖er  阅读(48)  评论(0编辑  收藏  举报