如何将变量分配给两个对象?

时间:2017-08-08 19:55:19

标签: python-3.x

g = None
try:
   g = open("mydata.txt", "r")
except IOError:
   print(’Python could not open the file mydata.txt.’)
if g:
   try:
      lines = g.readlines()
      print("The list of lines is:")
      print(lines)
   except IOError:
      print(’Error while trying to read the data in the file.’)

这是在我的教科书中使用python中的tryexcept的示例。该教科书指出" g被赋予None的初始绑定(在False语句的布尔上下文中被视为if)&#34 ;。根据我的理解,g已经拥有从open函数返回的文件对象,如何在False语句的布尔上下文中将其视为if

3 个答案:

答案 0 :(得分:1)

g在将None重新分配到{/ p>时将g = open("mydata.txt", "r") 更改为文件对象

Get-WinEvent

它没有"有2个对象"立刻。

答案 1 :(得分:0)

所以重要的是要理解Python是解释语言按语句执行语句

编译此代码时,编译器知道来自g的{​​{1}}为None。但编译器会继续阅读更多行。当它显示g = None时,变量g = open("mydata.txt", "r")现在重新分配以保存文件对象,而不再是g

答案 2 :(得分:0)

它不能同时是None和文件的内容;我的想法是,如果open()失败,并且第一个Except块被点击,那么g will still be equal to无。“

因此,如果open()进程成功完成,则if g语句将评估为true,并且函数将继续。如果open()流程失败,g仍将等于None,因此if g语句将评估为false,并且会跳过readlines()部分