Python的with
关键字是如何在lambda函数中表达的?考虑以下几点:Python“with”关键字在Lambda函数中
cat = lambda filename: with open(filename, 'r') as f: return f.read()
Python的with
关键字是如何在lambda函数中表达的?考虑以下几点:Python“with”关键字在Lambda函数中
cat = lambda filename: with open(filename, 'r') as f: return f.read()
lambda_form ::= "lambda" [parameter_list]: expression
你不能,with
是一个语句,lambda
只返回表达式:
def cat (filename):
with open(filename, 'r') as f:
return f.read()
一个在拉姆达实施失败的尝试。
使用CPython,执行'open(filename).read()'行后立即关闭文件,因为文件对象立即被垃圾收集。这是一个表达式,可以在lambda中使用。但是这是糟糕的风格,并不是一个好的lambda用例,使用'def'更好。 – wim 2013-04-26 03:33:33
感谢您的意见。那么对于这个例子,只要在需要的地方写'open(filename).read()'就可以了。 – 2013-04-26 03:40:55
you _could_,它与_would_不同:) – wim 2013-04-26 03:45:31