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