使用 open("hello.txt", "wb") 作为 f: f.write("你好 Python!\n")
似乎和
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
使用 open .. as 而不是 f = 有什么好处?它只是语法糖吗?只保存一行代码?
使用 open("hello.txt", "wb") 作为 f: f.write("你好 Python!\n")
似乎和
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
使用 open .. as 而不是 f = 有什么好处?它只是语法糖吗?只保存一行代码?
为了与with
语句版本等效,您编写的代码应如下所示:
f = open("hello.txt", "wb")
try:
f.write("Hello Python!\n")
finally:
f.close()
虽然这看起来像是语法糖,但它可以确保您释放资源。一般来说,世界比这些人为的例子更复杂,如果你忘记了一个try.. except...
或未能处理一个极端情况,你手上就会有资源泄漏。
该with
语句使您免于这些泄漏,从而更容易编写干净的代码。要获得完整的解释,请查看PEP 343,它有很多示例。
如果f.write
抛出异常,f.close()
则在您使用时with
调用,而在第二种情况下不调用。范围f
更小,使用时代码更干净with.
如果f
在f.write()
.