Bla*_*ine 13 python with-statement contextmanager
我很好奇是否认为安全或良好的做法依赖于python的...作为声明.例如,打开文件时:
with open("myfile","w") as myFile:
#do something
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中我忽略了显式调用myFile.close()但是我可以假设当python with...as通过调用objects __exit__()方法退出语句时调用它.依赖于此是好的做法/安全还是总是明确地打电话会更好file.close()
Mar*_*ers 20
这是什么情况下管理者对,要靠他们关闭文件给你.即使存在异常,也会调用上下文管理器.
另一种方法是使用finally块代替:
myFile = open("myfile","w")
try:
# do something with myFile
finally:
myFile.close()
Run Code Online (Sandbox Code Playgroud)
但是因为内部的阻塞try:可能很长,所以当你接到finally声明时,你已经忘记了你为此设置的内容.
上下文管理器仍然更强大.因为该__exit__方法被告知任何异常,所以它们也可以充当异常处理程序(忽略异常,引发异常等).
| 归档时间: |
|
| 查看次数: |
10882 次 |
| 最近记录: |