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()
答案 0 :(得分:7)
lambda_form ::= "lambda" [parameter_list]: expression
你不能,with
是一个陈述,而lambda
只返回表达式。
答案 1 :(得分:1)
以防万一有人在寻找诀窍:
lambda filename: [(f.read(), f.close()) for f in [open(filename)]][0][0]