首页 > 解决方案 > 为什么 print(f.close()) 在下面的代码中返回 None ?

问题描述

在下面的代码中,我假设文件已经关闭,但是为什么print(f.close())返回None而不是错误呢?

f = None
for i in range(5):
    with open("mytextfile.txt", 'w') as f:
        if i>2:
            break

print(f.close())

如果有人可以帮助或解释它是如何工作的,那就太好了。谢谢你。

标签: pythonpython-3.xfile

解决方案


对于打印部分,因为close()不返回任何值。

而对于错误部分,我认为你只是试图关闭已经关闭的文件,虽然它会导致错误对关闭的文件执行任何操作,但存在异常to close it again,因为它检查f.closed并且因为它已经关闭(找到它是True,它不会引发错误,你可以忽略它,但我认为这样做不是很好。


推荐阅读