7

Python 的with关键字在 lambda 函数中是如何表达的?考虑以下:

def cat (filename):
    with open(filename, 'r') as f:
        return f.read()

lambda 实现尝试失败:

cat = lambda filename: with open(filename, 'r') as f: return f.read()
4

2 回答 2

9

lambda_form ::= "lambda" [parameter_list]: expression

你不能,with是一个语句,并且lambda只返回表达式。

于 2013-04-26T03:25:56.377 回答
1

以防万一有人在寻找技巧:

lambda filename: [(f.read(), f.close()) for f in [open(filename)]][0][0]

于 2018-04-24T21:39:28.073 回答