0
在Python解釋器,我可以定義一個函數是1
但不print(1)
無元lambda功能
>>> lambda: 1
<function <lambda> at 0x023D03F0>
>>> lambda: print(1)
File "<stdin>", line 1
lambda: print(1)
爲什麼?
在Python解釋器,我可以定義一個函數是1
但不print(1)
無元lambda功能
>>> lambda: 1
<function <lambda> at 0x023D03F0>
>>> lambda: print(1)
File "<stdin>", line 1
lambda: print(1)
爲什麼?
發生這種情況是因爲(至少在傳統的Python 2中),print
不是函數,而是一個聲明 - 所以它在lambda體中沒有意義。
在Python 3,或在Python 2啓用了print_function
選項,print
是一個函數,並且它在一個lambda工作:
>>> from __future__ import print_function
>>> lambda: print(1)
<function <lambda> at 0x7f69ab049578>
>>>