>백엔드 개발 >파이썬 튜토리얼 >Python의 목록 수정 방법이 'None'을 반환하는 이유는 무엇입니까?

Python의 목록 수정 방법이 'None'을 반환하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-20 18:29:13839검색

Why Do Python's List Modification Methods Return `None`?

Python 목록 메서드가 목록 대신 None을 반환하는 이유는 무엇입니까?

추가, 정렬, 확장, 제거, 지우기 및 역방향과 같은 목록 메서드를 수정하면 일반적으로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.