contextmanager

    2热度

    2回答

    我读过很多类似的问题,但其中大多数都是通过修复缩进来解决的,所以要么我不知道,要么有一些简单的修复方法我的问题,但我不认为这是关于身份。 所以我有这个功能,基本上使用两个* .txt文件执行一些操作,并返回一个生成器对象namedtuples与我需要稍后查找的一些信息。 def master_reader(file1, file2): with open(file1, "r", enco

    0热度

    1回答

    我试着理解上下文管理器。 Peoples wtite,它相当于try...finally区块。 是否存在能力用上下文管理器编写下面的代码? def func(): try: do_something1() ... except Exception: return False do_something2() return T

    0热度

    1回答

    我有一个相当复杂的上下文管理器集成到我的软件中,我正在对它们进行一些更改。我怎样才能获得块内发生的完整错误日志。目前为止我所能做的只是: print exc_type print exc_val print exc_tb 但是,这并不能揭示错误的完整回溯。我怎样才能得到经典的错误日志点菜Traceback (most recent call last): 感谢您的帮助

    0热度

    1回答

    我在Python 3中创建了一个上下文管理器来修改和管理Pandas的DataFrame。 我有三个功能,删除,更新和插入。 所以我的问题是,我怎么能传回数据帧的结果回用户之外的语句? ``` df = pd.DataFrame() with Editor(df) as editor: for idx, row in editor: row['COLUMN'] = "RA

    2热度

    1回答

    我正在写一个试图为调度作业提供持久队列的小型库。我的持久性代码提供了迭代未决作业描述的方法;我还想保证派遣的工作最终会被标记为已完成或失败。 要做到这一点,我第一个实现它让我的用户可以这样做: for c in some_iterator_object: with c as x: ... 我不喜欢这个解决方案有以下几个原因。首先,我想从我的队列中获取作为单个操作的作业描述(

    0热度

    1回答

    在文档字符串的numpy.load()我发现以下警告: 对于.npz文件,NpzFile类返回的实例必须关闭,以避免泄露文件描述符。 我注意到,返回的NpzFile对象既有__enter__()和__exit__()方法。 >>> with numpy.load('my_mile.npz') as data: ... A = data['A'] : 想如果我像这样使用它需要关闭它的自动照顾

    -1热度

    1回答

    我写了一个通用框架,帮助我对基准代码的关键部分进行基准测试。 下面是对框架的解释,最后是我面临的问题,我对解决方案的想法很少。 基本上,我在寻找更优雅的解决方案 假设我有做这个(在伪代码)功能: #Pseudo Code - Don't expect it to run def foo(): do_begin() do_critical() some_value

    1热度

    1回答

    我在python中使用上下文管理器。在想从我的__exit__方法中获取一些日志。所以,我的代码记录是这样的: class MyContextManager: def __init__(self, value1, value2) self.value1 = value1 self.value2 = value2 def __enter__(self)

    4热度

    2回答

    有时我需要一个虚拟的上下文管理器,它什么都不做。它可以作为一个更有用,但可选的上下文管理器的替身。例如: ctx_mgr = <meaningfulContextManager> if <condition> else <nullContextManager> with ctx_mgr: ... 如何定义这样一个琐碎的空的上下文管理器? Python库是否提供一个现成的产品? 我们

    0热度

    1回答

    我有下面的代码,在这里我只是想玩弄使用contextmanager的日志 模块。 from contextlib import contextmanager import logging @contextmanager def log_level(level, name): logger = logging.getLogger(name) old_level = log