추가, 정렬, 확장, 제거, 지우기 및 역방향과 같은 목록 메서드를 수정하면 일반적으로 None이 반환됩니다. 수정된 목록 자체보다 이러한 설계 결정은 객체를 내부에서 수정하는 함수는 None을 반환해야 한다는 Python의 중요한 원칙에 뿌리를 두고 있습니다.
Python 설계자 Guido van Rossum에 따르면 , 이 선택은 새로운 객체가 생성되지 않는다는 것을 강조하는 역할을 합니다. 수정된 목록을 반환하지 않음으로써 혼란스럽고 가독성을 저하시킬 수 있는 다음과 같은 연쇄 부작용의 사용을 방지합니다.
x.compress().chop(y).sort(z)
대신 Python은 더 명시적인 형식을 선호합니다.
x.compress() x.chop(y) x.sort(z)
이렇게 분리하면 각 메서드가 동일한 객체에 대해 작동한다는 것이 분명해집니다.
측면을 연결하는 동안 -효과 호출은 권장되지 않습니다. Python에서는 문자열 처리와 같은 새 값을 반환하는 작업에 허용합니다. 운영:
y = x.rstrip("\n").split(":").lower()
이 디자인 결정에는 단점이 있습니다. 이는 다음과 같은 목록 처리의 직관적인 "체인"을 방지합니다.
mylist.reverse().append('a string')[:someLimit]
목록 이해 및 기타 데이터 구조와 같은 대안은 "부작용 반환 없음" 규칙을 위반하지 않고 유사한 기능을 제공할 수 있습니다.
위 내용은 Python의 목록 수정 방법이 'None'을 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!