with语句
使用with语句替代try-finally 语句,代码更加的简洁清晰
对于需要对资源进行访问的任务,无论在代码运行过程中,是否发 生异常,都会执行必要的清理操作,释放资源。
1.
-
with open(
r"D:\code1\pythontest\mypython.txt")
as f:
-
print(f.read())
2.
-
with open(
r"D:\code1\pythontest\mypython.txt")
as f:
-
print(f.read())
-
print(f.read())
3.
-
with open(
r"D:\code1\pythontest\mypython.txt",
"w")
as f:
-
print(f.read())
上下文管理器
上下文管理器是Python中的一种协议,它保证了每次代码执行的一致性
一旦进入上下文管理器,就一定会按照规定的步骤退出
如果合理的设计了退出上下文管理器的步骤,就能够很好的处理异常。
上下文管理器被最多用到的场景是资源清理操作。
实现上下文管理器,只要在类定义时,实现__enter__()方法和__exit__()方法即可
使用with语句访问上下文管理器
with 上下文管理器表达式 [ as 变量]:
语句块
-
#上下文管理器
-
class File():
-
def __init__(self,filename,mode):
-
self.filename=filename
-
self.mode=mode
-
#在with语句块执行前,首先会执行enter()方法
-
def __enter__(self):
-
print(
"执行__enter__function.")
-
self.f = open(self.filename,self.mode)
-
return self.f
-
#当with语句块执行结束,无论是否出现异常,都会调用__exit__()方法
-
#通常将清除、释放资源的操作写在__exit__()方法中
-
def __exit__(self,*args):
-
print(
"执行s__exit__function.")
-
self.f.close()
-
-
with File(
r'D:\code1\pythontest\mypython.txt',
'r')
as f:
-
print(f.read())
转载:https://blog.csdn.net/qq_39397927/article/details/115871783
查看评论