Python上下文管理器类型

在python中,with语句支持运行时上下文。上下文由上下文管理器定义。使用上下文管理器,我们可以创建用户定义的类来定义运行时上下文。它在执行语句主体之前进入任务,并且在语句主体完成时结束。

上下文管理器有两种不同的方法。这些方法是-

方法__enter __()

__enter __()方法用于输入运行时上下文。它将返回当前对象或另一个相关对象。返回的值绑定到with语句的as子句中的标识符。

方法__exit __(exc_type,exc_val,exc_tb)

__exit __()方法用于返回布尔类型的结果。它指示发生的任何异常。如果with语句有一个异常,它将转到末尾。

范例程式码

class MyFileManager:
   def __init__(self, fname):
      self.file_name = fname

   def __enter__(self):
      self.myFile = open(self.file_name, 'r')
      return self.myFile

   def __exit__(self, exc_type, exc_val, exc_tb):
      if self.myFile:
      self.myFile.close()

   with MyFileManager('sampleTextFile.txt') as myFile:
   x = myFile.read()
print(x)

输出结果

Test File.
We can store different contents in this file
~!@#$%^&*()_+/*-+\][{}|:;"'<.>/,'"]