2013-10-06 2 views

답변

3

또는 아마도 난이도,

return int(somefunc(d1, d2) > 32) 

int(True) == 1int(False) == 0 그.

+0

실제로'somefunc (d1, d2)> 32'를 직접 반환 할 수 있습니다. 왜냐하면 True와 False는 이미'int'이기 때문입니다. – BrenBarn

+1

하지만 원래 코드가 반환 한 내용은 정확히 ** 반환되지 않습니다. 우리가 알고있는 바로는, 수신 측의 누군가가 결과에 대해'type()'체크를 수행하고 있습니다 ;-) –

+1

이 경우, 그들에게 맞는 것입니다. – BrenBarn

5

은 "반환 값 시나리오는"다른 다르지 않다 :

return 1 if somefunc(d1, d2) > 32 else 0 

어떤 이유로 당신은 람다하려면 다음과 람다는 다르지 않습니다 것을

lambda d1, d2: 1 if somefunc(d1, d2) > 32 else 0 

주 함수는 동일한 것을 반환하는 def으로 정의됩니다. 람다는 단지 정규 기능입니다. lambda (안 명시 적 기능)에

-1

켭니다

accept = lambda d1,d2: 1 if somefunc(d1, d2) > 32 else 0 
+0

람다는 함수입니다. – BrenBarn

관련 문제