runtime.py 文件源码

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

项目:stackimpact-python 作者: stackimpact 项目源码 文件源码
def patch(obj, func_name, before_func, after_func):
    if not hasattr(obj, func_name):
        return

    target_func = getattr(obj, func_name)

    # already patched
    if hasattr(target_func, '__stackimpact_orig__'):
        return

    @wraps(target_func)
    def wrapper(*args, **kwds):
        if before_func:
            before_func(*args, **kwds)

        ret = target_func(*args, **kwds)

        if after_func:
            after_func(ret)

        return ret

    wrapper.__orig__ = target_func
    setattr(obj, func_name, wrapper)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号