python 상속 예제

함수를 덮어쓰면 원래 함수가 사라집니다. 함수가 재정의됩니다. 이 프로세스는 개체 방향 또는 상속과는 아무 관련이 없습니다. 애완 동물 클래스를 사용하는 몇 가지 예를 살펴 보자! 파이썬 3.x에서는 “클래스 테스트(개체)”와 “클래스 테스트”가 동일합니다. Python 2.x에서 “클래스 Test(개체)”는 모체(새 스타일 클래스라고 함)로 개체가 있는 클래스를 만들고 “클래스 Test”는 이전 스타일 클래스(개체 부모 없이)를 만듭니다. 자세한 내용은 이 것을 참조하십시오. 우리는 상속의 원리가 어떻게 작동하는지 보여주기 위해 파이썬 튜토리얼의 이전 장에서 우리의 사랑하는 로봇 또는 더 나은 로봇 클래스를 고수할 것입니다. 우리는 로봇에서 상속 클래스 의사 로봇을 정의합니다. MyClass 예제에서는 문자열 `hello world`를 반환합니다. 그러나 x.f는 메서드 개체이며 나중에 저장하여 호출할 수 있습니다.

예를 들어 __init__ 메서드(Pet 클래스의 다른 메서드뿐만 아니라)에는 이 자체 변수가 있지만 메서드를 호출할 때(예: 폴리 = Pet(“Polly”, “앵무새”))는 두 값만 전달하면 됩니다. 왜 우리는 자기 매개 변수를 전달할 필요가 없습니다? 이 현상은 파이썬의 특별한 동작입니다 : 인스턴스의 메서드를 호출 할 때 파이썬은 자동으로 (인스턴스에서) 무엇을 해야하는지 파악하여 함수에 전달합니다. __init___의 경우 파이썬은 먼저 self를 생성한 다음 전달합니다. getName 및 getSpecies 메서드에 대해 논의할 때 아래에서 이에 대해 조금 더 설명하겠습니다. 다중 상속의 모든 경우 하나 이상의 다이아몬드 관계를 나타내기 때문에 동적 순서가 필요합니다(상위 클래스 중 하나 이상이 맨 아래 클래스의 여러 경로를 통해 액세스할 수 있음). 예를 들어 모든 클래스는 개체에서 상속되므로 다중 상속의 경우 개체에 도달하는 두 개 이상의 경로를 제공합니다. 기본 클래스에 두 번 이상 액세스하지 못하도록 하기 위해 동적 알고리즘은 각 클래스에 지정된 왼쪽에서 오른쪽 순서를 유지하며 각 부모를 한 번만 호출하며 단조로운 방식으로 검색 순서를 선형화합니다(클래스가 부모의 우선 순위에 영향을 주지 않고 하위 클래스로 분류됩니다) 이러한 속성을 종합하면 여러 상속을 통해 안정적이고 확장 가능한 클래스를 디자인할 수 있습니다.