在with语句中覆盖文件引用变量

Pau*_*eeb 2 python scope with-statement

如果这会导致任何不良行为,我很好奇.我运行了一个测试用例并没有出现任何错误,所以我认为它没问题(虽然可能不是很好的做法).只是想知道python如何处理我认为应该存在的问题?

with open("somefile.txt","r") as fileinfo:
    fileinfo = fileinfo.readlines()

print fileinfo
Run Code Online (Sandbox Code Playgroud)

我认为覆盖"fileinfo"会导致退出with语句的问题(引发一些关于无法将.close()列表的错误).with语句是否保留文件引用的本地副本?谢谢!

kin*_*all 5

当然,Python保留了对with语句中使用的对象的内部引用.否则,当你不使用该as条款时它会如何工作?