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!")