추가, 정렬, 확장, 제거, 지우기, 역방향과 같은 방법으로 Python 목록을 조작할 때 이상한 동작이 발생합니다. : 이러한 작업은 목록을 내부에서 수정하고 업데이트된 목록 대신 None을 반환합니다.
이 디자인 선택은 Python의 기본 원칙에 따라 결정되었습니다. 그 자리에서 객체를 변경하면 None을 반환해야 합니다. 이는 이러한 작업 중에 새 객체가 생성되지 않는다는 사실을 강조하는 역할을 합니다.
Python의 창시자인 Guido van Rossum은 Python-Dev 메일링 리스트에서 자신의 이론적 근거를 자세히 설명합니다. 그는 코드의 의도에 대한 독자의 이해를 모호하게 할 수 있으므로 단일 개체에 대한 부작용을 간결하게 연결하는 것에 반대합니다. 예를 들어, 다음 코드를 고려해 보세요.
x.compress().chop(y).sort(z)
이것은 다음과 같습니다.
x.compress() x.chop(y) x.sort(z)
Van Rossum은 두 번째 형식이 각 작업이 적용됨을 명시적으로 보여주기 때문에 더 명확하다고 주장합니다. 동일한 변수 x에 연결합니다.
반면에 체인 사용은 문자열 처리와 같이 새 값을 반환하는 작업에 예약되어 있습니다. 작업:
y = x.rstrip("\n").split(":").lower()
pstat와 같은 특정 라이브러리 모듈이 부작용 호출 연결을 권장할 수 있지만 Van Rossum은 표준 라이브러리에 새로 추가되는 경우 이러한 방식을 권장하지 않는다고 주장합니다.
위 내용은 Python 목록 돌연변이 메서드가 '없음'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!