我编写了一个既作为上下文管理器又作为函数运行的函数。
我的函数可以追溯到 Python 2.6 并针对此测试:
@cd('/')
def test_cd_decorator():
assert os.getcwd() == '/'
def test_cd():
old = os.getcwd()
with cd('/'):
assert os.getcwd() == '/'
assert os.getcwd() == old
test_cd_decorator()
assert os.getcwd() == old
test_cd()
什么是最 Pythonic 的解决方案?