contextmanager

    2热度

    3回答

    我无法弄清楚当他们都使用上下文管理器时,如何模拟两个文件在类中打开。我知道如何使用模拟模块,这样做的一个上下文管理文件: @patch('__builtin__.open') def test_interface_mapping(self, mock_config): m = MagicMock(spec=file) handle = m.return_value.__e

    0热度

    1回答

    我做一个简单的包装程序周围的软件工具,而这种包装将,除其他事项外,解析会被用户编码为用户的方式JSON配置文件展出为程序指定某些配置。 在程序中,我有以下几行代码: with open(os.path.join(args.config_bin_dir, 'basic_config.json'), 'r') as jsondata : print "JSON File contents:"

    0热度

    1回答

    这里是什么,我基本上是试图做的事: import sh, os with sh.cd('/tmp'): print os.getcwd() print os.getcwd() 我碰到下面的错误,虽然 line 3, in <module> with sh.cd('/tmp'): AttributeError: __exit__ 缺少什么我在这里?是否有其他解决

    2热度

    1回答

    为了说明我的问题,这里不使用contextlib一个基本要求:使用contextlib相同的请求 import urllib.request url = "http://www.example.com/" with urllib.request.urlopen(url) as response: raw_data = response.read() 和: i

    1热度

    2回答

    我最近在Python的with-statement语句中遇到了一个奇怪的行为。我有一个代码,它使用Python的上下文管理器来回滚__exit__方法中的配置更改。经理在__exit__的finally块中有return False值。我隔离在下面的代码的情况下 - 唯一的区别是return语句的缩进: class Manager1(object): def release(self)

    1热度

    1回答

    我试图使用python with-statement(a.k.a.上下文管理器)来确保由server_socket.accept()创建的TCP连接套接字始终关闭。然而,明显的形式不起作用,因为accept()返回多个值。 有没有办法使用带有多个返回值的函数with-statement? 下面是一个简单的例子,我想使用类似注释的代码来替换try/finally块。 #!/usr/bin/env p

    0热度

    2回答

    是否有可能有一个上下文管理器,只是保持以前的run执行状态。在代码: 编辑:不工作的解决方案,这是我预料 with sudo('. myapp'): #this runs a few things and sets many env variables run('echo $ENV1') # $ENV1 isn't set because the sudo command ran ind

    14热度

    1回答

    假设您使用的是multiprocessing.Pool对象,并且您正在使用构造函数的initializer设置来传递初始化函数,然后在全局名称空间中创建资源。假设资源具有上下文管理器。你如何处理上下文管理资源的生命周期,前提是它必须贯穿整个流程的生命周期,但最后要妥善清理? 到目前为止,我有一些有点像这样: resource_cm = None resource = None def _w

    1热度

    1回答

    我想要的行为,例如: with A() as f: for x in f: do_something(f) 这是做正确的方式? class A: def __enter__(self): print "Entering context" def __iter__(self): for x in ["some","list"]:

    10热度

    2回答

    我用google搜索了calling __enter__ manually但没有运气。因此,让我们假设我有MySQL连接器类,它使用__enter__和__exit__函数(最初与with语句一起使用)连接/从数据库断开连接。 而且让我们有一个使用其中2个连接的类(例如用于数据同步)。 注意:这不是我的真实生活场景,但它似乎是最简单的示例。 ,使其所有一起工作的最简单方法是阶级是这样的: clas