본문 바로가기

Python

Python: None and False / False and None / None or False # bool

728x90
반응형

일반적인 프로젝트 내에서

None and False 라는 코드를 하드코딩으로 직접 작성하는 경우는 거의 없을 것이다.

 

그러나, 넘어온 변수가 의도치 않게 None으로 넘어온 경우 위와 같이 None and False 등의 상황이 벌어질 수 있다.

그리고 이 결과값을 변수로 받은 후에 로직 상에서 처리가 되는 경우

None이냐 False냐에 따라서 다르게 동작하기도 하고,

특히 Pydantic으로 데이터 타입을 검증할 때 에러가 발생하기도 한다.

 

1.

None and False -> None

False and None -> False

---> and 연산일 경우 단락평가(short circuit evaluation)에 따라서 None, False가 앞에 있으면 앞부분만 보고 판단

       단, 그 판단된 결과가 무조건 False가 아니라 None, False가 모두 될 수 있으므로 주의

 

2.

None or True -> True

True or None -> True

---> or 연산의 경우 True를 만날 때까지 넘어가고, True가 나오면 True를 바로 반환

 

3.

False or None -> None

None or False -> False

---> or 연산의 경우 True를 만날 때까지 넘어가므로, None or False 등의 경우는 끝까지 넘어가서 남는 값을 반환

 

* 비교 연산 참고

https://taltal-dev-note.tistory.com/209

 

 

 

 

728x90
반응형