Skip to main content

Python 上下文管理器 (Context Manager)

大家好!今天我们来聊聊Python的Context Manager。 Context Manager (上下文管理器) 是一种 Python 结构,用于自动管理资源的分配和释放。 比如这里的写法,可以不写close文件的代码。 因为使用 with 语句可以确保文件在使用完毕后自动关闭, 即使在处理文件过程中发生错误。

简单来说,上下文管理器帮助你更安全、更方便地管理资源,例如文件、网络连接等。 这样做的好处是可以避免资源泄漏,并简化代码,提高可读性。

下面的例子用自定义的FileContext来实现文件操作的上下文管理器。

希望这个简单的例子能帮助你理解Python的Context Manager!

代码示例​

with open("example.txt", "w") as f:
f.write("Hello!")

class FileContext:
def __init__(self,
filename,
mode):
self.file = None
self.filename = filename
self.mode = mode

def __enter__(self):
self.file = open(
self.filename,
self.mode)
return self.file

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

with FileContext(
"example.txt", "w") as f:
f.write("Hello!")