utils.py 文件源码

python
阅读 26 收藏 0 点赞 0 评论 0

项目:mos-horizon 作者: Mirantis 项目源码 文件源码
def once_only(func):
    called_funcs = {}

    @wraps(func)
    def wrapper(*args, **kwgs):
        if func.__name__ not in called_funcs:
            result = obj = func(*args, **kwgs)
            if isinstance(obj, types.GeneratorType):

                def gi_wrapper():
                    while True:
                        result = obj.next()
                        called_funcs[func.__name__] = result
                        yield result

                return gi_wrapper()
            else:
                called_funcs[func.__name__] = result
                return result
        else:
            return called_funcs[func.__name__]

    return wrapper
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号