Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

상속에서 여러 Python 클래스를 확장하는 방법은 무엇입니까?

<시간/> <본문>

파이썬 문서에 따르면 '수퍼'는 상속에서 여러 파이썬 클래스를 확장하는 데 도움이 될 수 있습니다. 메서드 호출을 부모 또는 형제 클래스 형식으로 위임하는 프록시 개체를 반환합니다. 이것은 클래스에서 재정의된 상속된 메서드에 액세스하는 데 유용합니다. 검색 순서는 유형 자체를 건너뛴다는 점을 제외하고 getattr()에서 사용하는 순서와 동일합니다.

다시 말해, super에 대한 호출은 상속 체인에서 상위 클래스에 속성 조회를 위임하는 가짜 객체를 반환합니다. 참고 사항:

이것은 구식 클래스에서는 작동하지 않습니다. Python 2.x에서는 자신의 클래스와 인스턴스를 super에 전달해야 합니다. 이 요구 사항은 3.x에서 면제되었습니다.

이것은 모든 다중 상속을 올바르게 처리합니다. 메서드 해결 순서가 생성되고 조회가 이 순서대로 상위 클래스를 거칩니다.