鱼C论坛

 找回密码
 立即注册
查看: 1352|回复: 3

[已解决]零基础入门学习Python第33讲课后动动手3

[复制链接]
发表于 2020-12-19 21:41:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这个题目小甲鱼的答案里面有一句:

finally:
    if 'f' in locals():     # 如果文件对象变量存在当前局部变量符号表的话,说明打开成功
        f.close()


请问:
1、这个 f 作为文件为啥要加上引号呢?以前学的  for each_line in f:  这些语句都没有给 f 加引号啊?
2、in locals()  这个表述好像第一次看到,是否能帮忙解释一下?

谢谢高手抽空答疑解惑,不甚感激!
最佳答案
2020-12-19 21:57:57
一个程序的所以变量名都存于一个字典中,locals()
字典的key是变量名的字符串形式,对的,变量f,对应的就是'f'
字典的value就是变量的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-12-19 21:57:57 | 显示全部楼层    本楼为最佳答案   
一个程序的所以变量名都存于一个字典中,locals()
字典的key是变量名的字符串形式,对的,变量f,对应的就是'f'
字典的value就是变量的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-12-20 10:59:22 | 显示全部楼层
冬雪雪冬 发表于 2020-12-19 21:57
一个程序的所以变量名都存于一个字典中,locals()
字典的key是变量名的字符串形式,对的,变量f,对应的就 ...

感谢您的回复,学习到了新的知识点,我查了local()是字典类型。

'f' 引号f --- 这个我还是不太明白,可以换成任意字符串吗?还是必须是符合语句: f = open('My_file.txt') 中赋值的变量 f ?  好像是如果被打开文件存在的话,这个引号f, 就是要符合语句f = open('My_file.txt')中的变量f 。我在locals字典中找到了对应的值:'f': <_io.TextIOWrapper name='My_File.txt' mode='r' encoding='cp936'>。如果我把引号f 换成 引号t, 好像就没有执行关闭文件f的语句。 这两个f之间的关系把我真的搞蒙了。
感谢您可否再次赐教。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-20 21:29:29 | 显示全部楼层
如果把f改为t,t = open('My_file.txt')
则字典local()中就是:'t': <_io.TextIOWrapper name='My_File.txt' mode='r' encoding='cp936'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-10 21:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表