时间:2021-05-23
凡是要在代码块前后插入代码的场景,这点和装饰器类似。
资源管理类:申请和回收,包括打开文件、网络连接、数据库连接等;
权限验证。
知识点扩展:
python上下文管理器异常问题解决方法
异常实例
如果我们需要对异常做特殊处理,就可以在这个方法中实现自定义逻辑。
之所以 with 能够自动关闭文件资源,就是因为内置的文件对象实现了上下文管理器协议,这个文件对象的 __enter__ 方法返回了文件句柄,并且在 __exit__ 中实现了文件资源的关闭,另外,当 with 语法块内有异常发生时,会抛出异常给调用者。
class File: def __enter__(self): return file_obj def __exit__(self, exc_type, exc_value, exc_tb): # with 退出时释放文件资源 file_obj.close() # 如果 with 内有异常发生 抛出异常 if exc_type is not None: raise exception在__exit__方法中处理异常实例扩展:
class File(object): def __init__(self, file_name, method): self.file_obj = open(file_name, method) def __enter__(self): return self.file_obj def __exit__(self, type, value, traceback): print("Exception has been handled") self.file_obj.close() return True with File('demo.txt', 'w') as opened_file: opened_file.undefined_function() # Output: Exception has been handled到此这篇关于python上下文管理的使用场景实例讲解的文章就介绍到这了,更多相关python上下文管理的使用场景内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python上下文管理器简介最近用到这个,仔细了解了一下,感觉是十分有用的,记录一下使用场景当我们需要获取一个临时打开的资源,并在使用完毕后进行资源释放和异常处
0、关于上下文管理器上下文管理器是可以在with语句中使用,拥有__enter__和__exit__方法的对象。withmanagerasvar:do_some
在对于python中的装饰器,我们一般会使用它辅助方法。在我们学习的上下文管理器中,有一个@contextmanager装饰器,它能够帮助我们在函数中定义上下文
问题你想自己去实现一个新的上下文管理器,以便使用with语句。解决方案实现一个新的上下文管理器的最简单的方法就是使用contexlib模块中的@contextm
本文实例讲述了Android上下文菜单用法。分享给大家供大家参考。具体如下:上下文菜单不同于选项菜单,选项菜单服务于Activity,而上下文菜单则是注册到某个