python检查调用函数是否是

2024-04-25 09:44:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从函数的decorator中检索有关调用者函数的信息。也就是说,我想知道调用者函数是否是生成器。我正试着检查外堆垛架,但找不到方法

def decorator(func):
    @functools.wraps(func)
    def wrapper(*args, **kwargs):
        inspect.isgeneratorfunction(func) ### THIS WORKS 
        frame = inspect.currentframe().f_back
        ### HERE THE MAGIC

    return wrapper

有可能吗?还是有简单的方法?你知道吗


Tags: 方法函数信息defargsdecoratorwrapperkwargs
1条回答
网友
1楼 · 发布于 2024-04-25 09:44:21
generator = bool(frame.f_code.co_flags&32)

从一些小测试来看,至少在我的python3版本中,生成器在十进制代码帧中设置了标志32。 您可能希望检查并了解它的可移植性,但至少在cpython上可能是合理的可移植性。你知道吗

相关问题 更多 >