首页 > 解决方案 > 上下文管理器范围

问题描述

我了解上下文管理器不会在 Python 中创建范围。但是,为什么这段代码:

with tempfile.NamedTemporaryFile(mode='wt', dir=F"{os.path.dirname(os.path.dirname(os.path.realpath(__file__)))}/assets/fetch/", delete=False, suffix=".xml") as fp:
    fp.write(generate_xml(param))
    from time import sleep
    sleep(.05)

    MODEL_PATH = fp.name
    model = mujoco_py.load_model_from_path(MODEL_PATH)

给出“找不到文件”的错误,但将模型移到上下文管理器之外不会。

with tempfile.NamedTemporaryFile(mode='wt', dir=F"{os.path.dirname(os.path.dirname(os.path.realpath(__file__)))}/assets/fetch/", delete=False, suffix=".xml") as fp:
        fp.write(generate_xml(param))
        from time import sleep
        sleep(.05)

        MODEL_PATH = fp.name
    model = mujoco_py.load_model_from_path(MODEL_PATH)

MODEL_PATH 未在函数的其他任何地方定义。

标签: python

解决方案


推荐阅读