开个丸笑 发表于 2018-1-17 17:33:48

零基础入门python课后作业33讲


动动手最后一题中,if 'f' in locals()后面的备注是如果当前文件对象存在于当前局部变量符合表的话说明成功打开,可是文件对象f不是全局变量么!!
谢谢大神的解答

sky 发表于 2018-1-17 17:33:49

开个丸笑 发表于 2018-1-17 17:53
看懂了,那等于说这次答案小甲鱼备注错了么?另外你头像的动态图片好精彩的样子盯着看了好久!!

注释没错 只是恰好此时返回的是全局变量字典而已
{:10_297:}I know

sky 发表于 2018-1-17 17:39:45

本帖最后由 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>}
>>>

开个丸笑 发表于 2018-1-17 17:53:42

sky 发表于 2018-1-17 17:39
嗯 这个是相对的 作用域有好几个级别
LGB
局部 全局 内置


看懂了,那等于说这次答案小甲鱼备注错了么?另外你头像的动态图片好精彩的样子盯着看了好久!!{:5_92:}
页: [1]
查看完整版本: 零基础入门python课后作业33讲