什么';使用'的好处是什么;具有as';Python中的语句?

什么';使用'的好处是什么;具有as';Python中的语句?,python,with-statement,Python,With Statement,使用open有什么好处。。而不是f=? 只是糖吗?仅保存一行代码?如果在f.write()期间发生异常,则前者仍然关闭f,如果f.write引发异常,则在使用with时调用f.close(),而在第二种情况下不调用。另外,f的作用域更小,使用with时代码更干净。为了与with语句版本等效,您编写的代码应如下所示: f = open("hello.txt", "wb") f.write("Hello Python!\n") f.close() 虽然这看起来像是语法上的甜点,但它可以确保您释放资

使用open有什么好处。。而不是f=?
只是糖吗?仅保存一行代码?

如果在
f.write()
期间发生异常,则前者仍然关闭
f
,如果
f.write
引发异常,则在使用
with
时调用
f.close()
,而在第二种情况下不调用。另外,
f
的作用域更小,使用
with时代码更干净。

为了与
with
语句版本等效,您编写的代码应如下所示:

f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
虽然这看起来像是语法上的甜点,但它可以确保您释放资源。一般来说,这个世界比这些人为的例子更复杂,如果你忘记了一个
试试。。除了…
或无法处理极端情况外,您还有资源泄漏


with
语句可以避免这些泄漏,从而更容易编写干净的代码。要获得完整的解释,请参阅,其中有大量示例。

有关RAII的更多有用阅读,请访问
f = open("hello.txt", "wb")
f.write("Hello Python!\n")
f.close()
f = open("hello.txt", "wb")
try:
    f.write("Hello Python!\n")
finally:
    f.close()