在结构中,cd
上下文管理器的工作方式类似于
with cd("dir"):
run("command")
并且该命令将在切换到dir
目录后运行。这很好用,但问题是它使用了全局状态。例如,假设我有一个辅助函数,需要使用 cd:
def helper():
with cd("foo"):
run("some command")
如果我helper
从另一个函数调用
def main_function():
helper()
...
它工作正常。但是如果我做类似的事情
def main_function():
with cd("bar"):
helper()
它中断了,因为run("come command")
from 助手现在运行 frombar/foo
而不是 just foo
。
关于如何解决这个问题的任何提示?我尝试在 cd 中使用绝对路径,但这不起作用。我真正想要的是cd
上下文只扩展到函数范围。