contextmanager相关内容

在python中打开和关闭文件

我已阅读到使用以下格式打开文件时 with open(filename) as f: #My Code f.close() 不需要显式关闭文件.有人可以解释为什么会这样吗?另外,如果有人确实关闭了文件,会不会有不良影响? 解决方案 这一英里高的概述是:当您离开嵌套块时,Python会自动为您调用f.close(). 您是通过跌倒谷底还是调用break/cont ..
发布时间:2020-11-05 19:14:35 Python

如何在上下文管理器中安全地处理异常

我想我已经读到with内的异常不允许正确调用__exit__.如果我在此注释上写错了,请原谅我的无知. 所以我这里有一些伪代码,我的目标是使用一个锁上下文,该锁上下文在__enter__上记录开始日期时间并返回锁id,在__exit__上记录结束日期时间并释放锁: def main(): raise Exception with cron.lock() as lockid: ..
发布时间:2020-11-01 21:01:09 Python

将参数传递给去上下文装饰器

我有一个帮助器类 Decontext ,该类用于将上下文管理器转换为装饰器(pyton 2.6)。 class Decontext(object): “”“ 使上下文管理器也充当装饰器 “”“ def __init __(self,context_manager): self._cm = context_manager def __enter __(self): 返回s ..
发布时间:2020-10-19 21:13:45 Python

在Python中充当装饰器和上下文管理器的函数吗?

这可能会使事情有点过头,但主要出于好奇。 是否有可能有一个可调用的对象(函数/类) 同时充当上下文管理器和装饰器: def xxx(* args ,** kw): #或作为类 @xxx(foo,bar) def im_decorated(a,b): print('do东西'') 和xxx(foo,bar): print('做东西') 解决方案 从Pyth ..
发布时间:2020-10-19 20:36:52 Python

python异步上下文管理器

在Python Lan参考中3.4.4,据说__aenter__()和__aexit__()必须返回等待项.但是,在示例异步上下文管理器中,这两个方法返回None: class AsyncContextManager: async def __aenter__(self): await log('entering context') async def __ ..
发布时间:2020-09-13 06:35:07 Python

异步上下文管理器

我有一个异步API ,我正在使用该API连接并将邮件发送到SMTP具有一些设置并拆除的服务器.因此,它非常适合使用Python 3的contextlib中的contextmanager. 但是,我不知道是否有可能写,因为它们都使用生成器语法来写. 这可能证明了这个问题(包含yield-base和async-await语法的混合,以演示异步调用和上下文管理器的yield之间的区别). ..
发布时间:2020-09-13 06:02:48 Python

__exit __()(上下文管理器)中的exc_value参数是字符串而不是Exception(Python 2.6)

我试图弄乱上下文管理器,并在使用Python 2.6运行代码时感到有些惊讶。实际上, exc_value 参数似乎是一个字符串而不是一个异常。 一些代码可以点亮这个问题: import sys class contextmanager(object): def __enter __(self): pass def __exit __(self,type_,va ..
发布时间:2020-06-11 00:34:09 Python

python如何安全地处理上下文管理器中的异常

我想我已经读到 with 中的异常不允许正确调用 __ exit __ 。如果我错了,请原谅我的无知。 所以我这里有一些伪代码,我的目标是使用一个 __ enter __ 记录开始日期时间并返回锁ID,并在 __ exit __ 记录结束日期时间并释放锁: def main(): 引发异常 ,其中cron.lock()作为lockid: print('Got lock:%i'% ..
发布时间:2020-06-10 22:49:15 Python

SQLAlchemy会话的上下文/作用域是否需要非自动对象/属性到期?

情况:具有基本属性的简单类 在我正在处理的应用程序中,特定类的实例在其生命周期的 end 处保留,并且随后对其进行了 的修改,但它们的属性可能需要阅读.例如,该实例的end_time或其相对于同一类其他实例的顺序位置(初始化的第一个实例的值为1,下一个实例的值为2,依此类推.) class Foo(object): def __init__(self, position): ..
发布时间:2020-05-22 19:07:42 Python

上下文管理器类的命名约定(“带有"块)

对于要在with块中使用的类或函数是否存在通用命名约定,例如 with CreateSomeContext() as x: ... ?信号表明类或函数的结果应与with一起使用? 解决方案 在相应的PEP 0343 ,其中提到了两个约定: 示例上下文名称中使用的时态不是 随意的.当名称指代一个 在__enter__方法中完成并在 __exit__方法.当名称表示要在 ..
发布时间:2020-05-16 20:45:41 Python