Python 装饰器执行操作或忽略装饰函数 [关闭]

问题描述 投票:0回答:0

我需要一个装饰器,它需要检查一个条件,并根据它完全执行装饰函数或完全跳过它的执行。我大致有以下代码

def decorator_check(func):

    def wrapped_func(*args):
        settings = Settings.query.filter(Settings.key == const.VARIABLE).one_or_none()
        if not settings or (settings.value.get('FLAG_NAME', True)):
            return func(*args)
        else:
            pass

    wrapped_func.__name__ = func.__name__
    wrapped_func.__doc__ = func.__doc__

    return wrapped_func

我想知道这是否是正确的做法,或者我遗漏了什么。具体来说,我的代码没有按预期工作,我不确定为什么。我想排除装饰器是罪魁祸首的可能性。

python decorator python-decorators
© www.soinside.com 2019 - 2024. All rights reserved.