相关疑难解决方法(0)

什么是python关键字"with"用于?

什么是python关键字"with"用于?

示例来自:http://docs.python.org/tutorial/inputoutput.html

>>> with open('/tmp/workfile', 'r') as f:
...     read_data = f.read()
>>> f.closed
True
Run Code Online (Sandbox Code Playgroud)

python

478
推荐指数
2
解决办法
37万
查看次数

将使用list comprehension自动调用close()读取文件

以下语法是否关闭该文件:

lines = [line.strip() for line in open('/somefile/somewhere')]
Run Code Online (Sandbox Code Playgroud)

如果你可以证明它是做什么或不做的话,可以获得奖励积分......

TIA!

python

20
推荐指数
3
解决办法
1万
查看次数

可以与内联语句一起使用吗?

例如,以下代码不是内联的:

with x:
    do(stuff)
Run Code Online (Sandbox Code Playgroud)

我可以像这样单行:

with x: do(stuff)
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有一种方法可以做这样的事情(内联):

a = [(lambda x: with x: do(stuff))(x) for x in someList]
Run Code Online (Sandbox Code Playgroud)

编辑:

详细说,我有一个对象列表,每个对象都有自己的上下文。这意味着do(stuff)使用时的行为会有所不同,with x并且上面的语句将遍历该列表中的每个对象,输入它们的上下文,运行do(stuff),然后继续下一个。

由于按照我的尝试进行此操作无效,因此我想知道是否有任何方法以及如何执行此操作。

上面代码的扩展版看起来像这样(并且可以正常工作):

a = []
for x in someList:
    with x: a.append( do(stuff) )
Run Code Online (Sandbox Code Playgroud)

python inline python-3.x

1
推荐指数
1
解决办法
57
查看次数

标签 统计

python ×3

inline ×1

python-3.x ×1