With-As声明与" ="分配?

时间:2016-01-12 16:27:43

标签: python python-2.7

使用有什么区别:

'Log Builder
Protected Sub EventLogBuilder()

    'Create a streamwriter for the logs...
    Dim logBuilder As StreamWriter

    'Pass the file path and name for the log files...
    logBuilder = New StreamWriter("C:\GateInterfaceLog.txt")

    'Write a test line of text...
    logBuilder.WriteLine("")

    logBuilder.Close()

End Sub

Protected Sub eastOpen_Click(sender As Object, e As EventArgs) Handles eastOpen.Click

    'Actions take place here 

更高效还是允许更多方法访问?在我看来,在下一个块结束后,with-as语句是临时的和未引用的。

1 个答案:

答案 0 :(得分:4)

您的第一个示例只是打开文件并将文件对象分配给变量。您需要自己管理关闭文件(理想情况下,在try-finally块中,这样您就不会泄漏文件)

第二个代码段使用上下文管理器在退出with块时自动关闭文件,包括返回或引发异常