2013-10-17 2 views

답변

6

파이썬 andor 사업자는 같은 표현을 사용할 수 있도록 유유히 자신의 표현을 평가합니다.

이렇게하면 표현식을 함수에 전달하기 전에 계산해야하기 때문에 operator 처리가 부적합합니다.

위의 예에서 이는 and 표현이 operator 함수를 사용하여 표현 될 수 없음을 의미합니다. function_object이 false-y 인 경우 호출 할 수도없고 some_value이 true 인 경우 비싼 함수 호출을 호출하지 않으려 고합니다.

게으른 평가가 필요하지 않은 경우 그것은 자신의 함수를 만들 수있을만큼 쉽게 :

def and_(op1, op2): 
    return op1 and op2 

def or_(op1, op2): 
    return op1 or op2 
+0

게으름으로부터 이익을 얻으십시오. 내 진짜 질문을 별도의 질문으로 물어볼 것입니다. 대답 해줘서 고마워! –

1

당신은 쓸 수 있습니다 자신의 :

내가 싶습니다 특히 이후, 아주 좋은 지적입니다
logical_and = lambda a, b: a and b 
관련 문제