모두 없음보다 큰가요?
이 질문에 이미 답변이 있습니다.
거기에 파이썬 내장 데이터 유형 외에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 |