我试图了解以下是如何实现 Unix 命令 pushd 的。具体来说,鉴于它不产生任何结果,因此 yield 命令的目的是什么。
@contextmanager
def pushd(path):
prev = os.getcwd()
os.chdir(path)
try:
yield
finally:
os.chdir(prev)
根据维基百科,“pushd 命令将当前工作目录保存在内存中,因此可以随时返回,可选择更改为新目录”。此代码块的哪一部分执行此定义中的哪些功能?