零基础入门python课后作业33讲
动动手最后一题中,if 'f' in locals()后面的备注是如果当前文件对象存在于当前局部变量符合表的话说明成功打开,可是文件对象f不是全局变量么!!
谢谢大神的解答 开个丸笑 发表于 2018-1-17 17:53
看懂了,那等于说这次答案小甲鱼备注错了么?另外你头像的动态图片好精彩的样子盯着看了好久!!
注释没错 只是恰好此时返回的是全局变量字典而已
{:10_297:}I know 本帖最后由 sky 于 2018-1-17 17:41 编辑
嗯 这个是相对的 作用域有好几个级别
LGB
局部 全局 内置
locals 返回的是要看在哪里调用这个函数
这里是在模块级别调用的 所以返回的是全局变量 如果是在函数作用域内调用就是局部变量了
>>> def foo():
... a = 1
... print(locals())
...
>>> foo()
{'a': 1}
>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'foo': <function foo at 0x000002C780021E18>}
>>>
sky 发表于 2018-1-17 17:39
嗯 这个是相对的 作用域有好几个级别
LGB
局部 全局 内置
看懂了,那等于说这次答案小甲鱼备注错了么?另外你头像的动态图片好精彩的样子盯着看了好久!!{:5_92:}
页:
[1]