610得票8回答
在'with'语句中使用多个变量?

with语句在Python中能否声明多个变量?类似于这样的形式:from __future__ import with_statement with open("out.txt","wt"), open("in.txt") as file_out, file_in: for line...

572得票7回答
解释Python的'__enter__'和'__exit__'

我在别人的代码中看到了这个。它是什么意思? def __enter__(self): return self def __exit__(self, type, value, tb): self.stream.close() 这是完整的代码...

512得票11回答
Python中的“with”语句是用来干什么的?

我今天第一次了解到 Python 的 with 语句。虽然我已经轻松使用 Python 几个月了,但甚至都不知道它的存在!鉴于其有点模糊的地位,我认为值得问一下: with 语句设计用于什么? 你用它来做什么? 有任何需要注意的问题或常见反模式与其使用相关的问题吗?在哪些情况下最好使用 t...

436得票4回答
在Python中,如果我在“with”块内部使用return语句,文件是否仍然会被关闭?

考虑以下内容:with open(path, mode) as f: return [line for line in f if condition] 文件会被正确关闭吗?还是使用 return 会绕过上下文管理器?

388得票33回答
JavaScript的“with”语句有合法用途吗?

Alan Storm的评论是对我关于with语句回答的回应,这让我开始思考。我很少找到使用这个特定语言功能的原因,并且从未考虑过它可能会引起麻烦。现在,我想知道如何有效地使用with,同时避免其缺点。 你在哪里发现with语句有用?

321得票4回答
在多个上下文管理器上创建一个“with”块?

假设您有三个对象通过上下文管理器获取,例如锁、数据库连接和IP套接字。 您可以通过以下方式获取它们:with lock: with db_con: with socket: #do stuff 但是有没有一种方法可以在一个代码块中完成呢?就像这样:w...

299得票11回答
如何使用Python的Mock框架模拟在with语句中使用的open函数?

我该如何使用unittest.mock测试以下代码:def testme(filepath): with open(filepath) as f: return f.read()

138得票10回答
Python中的条件语句

有没有一种方法可以使用with语句来开始一个代码块,但带有条件约束? 类似这样:if needs_with(): with get_stuff() as gs: # do nearly the same large block of stuff, # involving gs or...

134得票3回答
在Python中自定义类中实现使用'with object() as f'的方法

我需要在Python中打开类似文件的对象(它是通过/dev/进行的串行连接),然后关闭它。这在我的类的几个方法中执行多次。我之前是在构造函数中打开文件,然后在析构函数中关闭它。但是我遇到了奇怪的错误,我认为这与垃圾收集器有关等等,我还不习惯不知道我的对象何时被删除 =\ 我这样做的原因是因为...

122得票4回答
使用Python中的“with”语句和try-except块

在使用Python的"with"语句与try-except语句块结合时,这是正确的方式吗?try: with open("file", "r") as f: line = f.readline() except IOError: <whatever>...