使用"with"语句后的可变范围



我在stackoverflow上没有找到这个问题的答案,所以我认为问它可能会有所帮助,并把它放在这里 -

我在打开文件后声明一个新词典,方式如下 -

with open('some_file.txt','r') as f:
dict = json.loads(f.read()) #converts text to a dictionary

我的问题是 - 即使在"with"范围结束后,我是否能够访问 dict 内容。

谢谢

是的,在 Python 中,变量的作用域仅在定义它的代码块结束时结束,并且with语句不是文档的代码块:

以下是块:模块、函数体和类 定义。以交互方式键入的每个命令都是一个块。脚本文件 (作为标准输入提供给解释器的文件或指定为 解释器的命令行参数(是一个代码块。一个脚本 命令(在解释器命令行上指定的命令,带有 "-c"选项(是一个代码块。传递给 内置函数 eval(( 和 exec(( 是一个代码块。

在python中,作用域由函数定义。没有缩进范围(类似于其他语言中的"括号"范围(。with部分仅影响f对象。

是的,您将无法访问f,其他一切都是公平的游戏。

最新更新