在0基础学python中的第33讲课后题的代码中为什么要使用 if 'f' in locals()
try:f = open('My_File.txt') # 当前文件夹中并不存在"My_File.txt"这个文件T_T
print(f.read())
except OSError as reason:
print('出错啦:' + str(reason))
finally:
if 'f' in locals(): # 如果文件对象变量存在当前局部变量符号表的话,说明打开成功
f.close()
在0基础学python中的第33讲课后题最后一问的代码中
其中 if 'f' in locals()的locals()函数实在是不知道是怎么应用在这里的,百度出来的locals()函数的使用方法也用不到里面,所以想问下大家这里为什么要使用这个函数,或者是是什么原理。
locals() 就是变量字典:
>>> i = 1
>>> locals() # 前面定义过一个名字为 i 的变量
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'i': 1}
if 'f' in locals() 就是判断名字为 f 的变量是否定义过 zltzlt 发表于 2020-8-14 15:53
locals() 就是变量字典:
可以理解为locals()是对 f 进行判断他是否有一个类型,或者说是否在内存里被保存在一个地址,如果有则返回真,没有返回假,请问大概设这样吗 加油~~~~ 发表于 2020-8-14 16:52
可以理解为locals()是对 f 进行判断他是否有一个类型,或者说是否在内存里被保存在一个地址,如果有则返 ...
没有那么复杂,就是看是否定义过这个f变量,和类型没有关系,定义过返回真,否则返回假
页:
[1]