Python学习:高级特性2
在前一章中,我们探索了装饰器的魔法,生成器的懒惰,以及迭代器的耐心。现在,让我们继续我们的探险,揭开上下文管理器的神秘面纱,然后跳入并发编程的快速河流。
4. 上下文管理器
上下文管理器是一种确保代码在进入和退出特定上下文时执行某些操作的机制。它就像是你在图书馆借书时的管理员,确保你借的书在离开时被正确记录。
使用上下文管理器:
在Python中,上下文管理器通常与with
语句一起使用。
with open('file.txt', 'r') as file:
content = file.read()
print(content)
在这个例子中,open
函数返回一个文件对象,它是一个上下文管理器。with
语句确保在代码块执行完毕后,文件被正确关闭。
创建自定义上下文管理器:
你可以使用__enter__
和__exit__
方法来创建自定义上下文管理器。
class MyContextManager:
def __enter__(self):
print("Entering the context.")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the context.")
if exc_type:
print(f"An error occurred: {
exc_value}")
return False # 重新抛出异常
# 使用自定义上下文管理器
with MyContextManager() as manager:
print("Inside the con