是否可以使用Python的lambda表示法编写以下内容?
def no(): return
没有sytax错误的最接近的是
no = lambda _: no
具有以下属性:
>>> no
<function <lambda> at 0x101e69f80>
>>> no(4)
<function <lambda> at 0x101e69f80>
>>> no(no(4))
<function <lambda> at 0x101e69f80>
>>> no == no(no)
True
>>> no == no(4)
True
no == no(no(4))
True
>>> no == 4
no == 4
False
答案 0 :(得分:3)
您的显式版本会返回None
。由于lambda函数仅由表达式组成,因此等效代码为
no = lambda: None
答案 1 :(得分:3)
>>> def no1():return
...
>>> no = lambda : None
>>> import dis
>>> dis.dis(no)
1 0 LOAD_GLOBAL 0 (None)
3 RETURN_VALUE
>>> dis.dis(no1)
1 0 LOAD_CONST 0 (None)
3 RETURN_VALUE
>>>
答案 2 :(得分:2)
相当于
def no():
return
是
no = lambda: None
答案 3 :(得分:2)
您正在寻找:
lambda: None
它是等价的,因为一个空return
的函数,或仅仅通过耗尽函数文本而退出的函数返回None
。