모두 없음보다 큰가요?
이 질문에 이미 답변이 있습니다.
거기에 파이썬 내장 데이터 유형 외에None , 어떤을 위해 :
>>> not foo > None
True
foo그 유형의 값은 어디에 있습니까? 파이썬 3은 어떻습니까?
None항상 Python 2의 데이터 유형보다 작습니다 (참조 object.c).
Python 3에서는 변경되었습니다. 이제 합리적인 자연 순서없이 사물을 비교하면 TypeError. 로부터 업데이트 "새로운 기능"3.0 :
Python 3.0은 순서 비교 규칙을 단순화했습니다.
순서 비교 연산자 (
<,<=,>=,>) 인상TypeError피연산자가 의미있는 자연 순서가없는 경우 예외를. 따라서, 식 같은1 < '',0 > None또는len <= len더 이상 유효하지 않으며, 예를 들어None < None올린다TypeError대신 반환하는False. 결과적으로 이기종 목록을 정렬하는 것은 더 이상 의미가 없습니다. 모든 요소는 서로 비교할 수 있어야합니다. 이는==및!=연산자 에는 적용되지 않습니다 . 비교할 수없는 다른 유형의 객체는 항상 서로 같지 않은 상태로 비교됩니다.
일부 None값 이있는 목록을 정렬 하고 None값이 시작 또는 끝 부분에 함께 클러스터 된 것처럼 보이게 하는 것과 같은 작업을 수행하는 것이 종종 편리했기 때문에 일부 사람들은 화가났습니다 . 얼마 전에 메일 링리스트에 쓰레드가 있었지만, 궁극적 인 요점은 파이썬 3가 주문에 대한 임의의 결정을 내리는 것을 피하려고한다는 것입니다 (파이썬 2에서 많은 일이 일어났습니다).
Python 2.7.5 소스 ( object.c)에서 :
static int
default_3way_compare(PyObject *v, PyObject *w)
{
...
/* None is smaller than anything */
if (v == Py_None)
return -1;
if (w == Py_None)
return 1;
...
}
편집 : 버전 번호가 추가되었습니다.
참고 URL : https://stackoverflow.com/questions/2214194/is-everything-greater-than-none
'Development Tip' 카테고리의 다른 글
| SQL에서 날짜를 비교하는 쿼리 (0) | 2020.11.21 |
|---|---|
| Vue 프로젝트에서보기와 구성 요소 폴더의 차이점은 무엇입니까? (0) | 2020.11.21 |
| 자바 스크립트 : indexOf 대 일치 문자열 검색? (0) | 2020.11.21 |
| 사용 가능한 모든 matplotlib 백엔드 목록 (0) | 2020.11.21 |
| 모든 셀러리 작업의 로그 메시지를 단일 파일로 전송 (0) | 2020.11.21 |