小编典典

with语句定义的变量在with-block之外可用吗?

python

考虑以下示例:

with open('a.txt') as f:
    pass
# Is f supposed to be defined here?

我已经阅读过用于声明的语言文档(2.7)和PEP-343,但据我所知,他们对此事一言不发。

在CPython 2.6.5f中,似乎确实是在with块之外定义的,但是我宁愿不要依赖于可能发生变化的实现细节。


阅读 140

收藏
2021-01-20

共1个答案

小编典典

是的,上下文管理器将在with语句之外可用,并且不依赖于实现或版本。with语句 不会 创建新的执行范围。

2021-01-20