본문 바로가기

개발/Python

[Python] Short Circuiting / Short Circuit Evaluation(단축평가, 단락평가)

단축평가는 빠르게 검사하기 위해

첫 번째 조건에서 이미 걸러질 것이라면 두 번째 조건을 보지 않는 것이다

 

어떻게 이렇게 되냐면

(첫 번째 조건) 연산자 (두 번째 조건)

ex) x<1 and x>-1

 

이라고 생각하면 python은 왼쪽 -> 오른쪽으로 연산을 하기 때문에 일어날 수 있는 일이다

 

밑의 표를 보면

X(첫 번째 조건, 왼쪽 조건) Y(두 번째 조건, 오른쪽 조건) OR AND
1 1 1 1
1 0 1 0
0 1 1 0
0 0 0 0

or 은 Y에 상관업이 X가 1(True)이면 무조건 결과가 True이다

그래서 X만 1이면 Y에 뭐가 오던지 읽지않고 바로 True가 된다

 

마찬가지로, and는 X가 0(False)이면 Y에 상관없이 결과가 False가 된다.

 

밑을 참고해도 된다

 

단락 평가 - IT위키

 

itwiki.kr

이 단락평가를 사용해서 예외처리를 하는 것을 

가디언 패턴(Guardian Pattern)이라고 하는데

그건 다음 게시물에서..