2013-05-15 3 views
0

파이썬의 람다 표기법을 사용하여 다음을 쓸 수 있습니까?파이썬 람다 함수 0

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 

답변

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

def no(): 
    return 
,745 상당

귀하의 명시적인 버전 None 반환

no = lambda: None 
3

입니다. 람다 함수는 식으로 구성되어 있기 때문에, 해당하는 코드는 그러므로

no = lambda: None 
2

당신이 찾고있는 것입니다 :

lambda: None 

return, 또는있는 함수에 의해 간단하게 종료하기 때문에 동등한입니다 함수 텍스트를 소진하면 None을 반환합니다.