我在stackoverflow上找不到此问题的答案,所以我认为将其提出来可能会有帮助-
我打开文件后要声明新字典,方法如下:
with open('some_file.txt','r') as f:
dict = json.loads(f.read()) #converts text to a dictionary
我的问题是-即使'with'范围结束后,我也能够达到dict的内容。
谢谢
答案 0 :(得分:3)
是的,在Python中,变量scope仅在其定义的代码块结束时结束,并且with
语句不是documentation的代码块:>
以下是块:模块,函数体和类 定义。交互键入的每个命令都是一个块。脚本文件 (作为标准输入提供给解释器或指定为 解释程序的命令行参数)是一个代码块。剧本 命令(在解释器命令行上用 “ -c”选项)是一个代码块。字符串参数传递给 内置函数eval()和exec()是代码块。
答案 1 :(得分:0)
是的,您将无法访问f
,其他一切都是公平的游戏。
答案 2 :(得分:0)
在python中,作用域由函数定义。没有缩进范围(类似于其他语言中的“括号”范围)。 with
部分仅影响f
对象。