鱼C论坛

 找回密码
 立即注册
查看: 1901|回复: 5

[已解决]课后习题33章 if 'f' in locals():这一句是什么意思?

[复制链接]
发表于 2017-11-8 14:47:42 | 显示全部楼层 |阅读模式

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

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

x
看了小甲鱼在旁边的备注但是还是不是很明白。求各位大神解答一下,谢谢~
最佳答案
2017-11-8 14:59:03
locals()是一个字典,包括了你定义的变量和函数等,这样就是判断是否有变量名(函数名)f
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-11-8 14:56:40 From FishC Mobile | 显示全部楼层
in 的用法而已,判断f是不是在函数locals()的返回值中
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-8 14:59:03 | 显示全部楼层    本楼为最佳答案   
locals()是一个字典,包括了你定义的变量和函数等,这样就是判断是否有变量名(函数名)f
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-8 15:03:58 | 显示全部楼层
本帖最后由 shuofxz 于 2017-11-8 15:06 编辑

【下次提问把题目和完整的代码都贴出来】

  1. if 'f' in locals()
复制代码

locals()返回的是一个字典,包括了你定义的变量和函数等
这个if 也就是判断是否有f 这个变量。

这么做的原因是:
前面有一句
  1. f = open('xxx.txt')
复制代码

如果有这个文件,那么一切顺利。
但如果没有这个文件,f 就并没有被赋值,那么后来执行 f.close()的时候就会报错。所以执行之前先判断一下,f是否被赋值了(文件是否正常打开),有就执行close,没有就不执行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-8 15:07:07 | 显示全部楼层
shuofxz 发表于 2017-11-8 15:03
【下次提问把题目和完整的代码都贴出来】

嗯嗯 好的 谢谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-8 15:07:28 | 显示全部楼层
BngThea 发表于 2017-11-8 14:56
in 的用法而已,判断f是不是在函数locals()的返回值中

嗯嗯 谢谢大佬 感觉大佬随时都在~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-3 20:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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