상속된 클래스가 수퍼클래스에서 메서드를 상속하고 재정의할 수 있음을 보았습니다. 이 외에도 하위 클래스는 종종 슈퍼 클래스에 존재하지 않는 추가 기능을 가진 추가 메서드가 필요합니다. DoctorRobot 클래스의 인스턴스는 의사가 적절한 일을 할 수 있도록 예를 들어 치료 방법이 필요합니다. 또한 0에서 1 사이의 값을 취할 수 있는 특성 health_level을 로봇 클래스에 추가합니다. 로봇은 0과 1 사이의 임의의 값으로 `살아올`것입니다. 로봇의 health_level이 0.8 미만이면 의사가 필요합니다. 값이 0.8 미만이고 False가 아닌 경우 True를 반환하는 메서드 needs_a_doctor를 작성합니다. 치유 방법의 `치유`는 health_level을 이전 health_level과 1 사이의 임의값으로 설정하여 수행됩니다. 이 값은 임의 모듈의 균일한 함수에 의해 계산됩니다. 이제 는 명확해야한다, 왜 PEP 8, 파이썬 코드에 대한 공식 스타일 가이드, 말한다: “개체 형식 비교는 항상 사용해야한다 isinstance() 대신 직접 형식을 비교. ” 인스턴스 개체의 유효한 메서드 이름은 해당 클래스에 따라 다릅니다.

정의에 따라 함수 개체인 클래스의 모든 특성은 해당 인스턴스의 해당 메서드를 정의합니다. 따라서 이 예제에서 x.f는 MyClass.f가 함수이기 때문에 유효한 메서드 참조이지만 myClass.i가 아니기 때문에 x.i는 그렇지 않습니다. 그러나 x.f는 MyClass.f와 동일하지 않습니다 – 함수 개체가 아닌 메서드 개체입니다. 이제 위의 예제를 설명하여 상속이 파이썬에서 어떻게 작동하는지 이해합니다. 여러 상속이 어떻게 작동하는지 보여주기 위해 산호 클래스와 Sea_anemone 클래스에서 상속하는 것보다 Coral_reef 자식 클래스를 만들어 보겠습니다. 각각에서 메서드를 만든 다음 Coral_reef 자식 클래스에서 pass 키워드를 사용할 수 있습니다. 우리는 위의 예를 보았다. 개체 내부에서 제외 하면 액세스할 수 없는 “개인” 인스턴스 변수는 파이썬에 없습니다.

그러나 대부분의 Python 코드 다음에 는 다음과 같은 규칙이 있습니다: 밑줄(예: _spam)이 붙은 이름은 API의 비공개 부분(함수, 메서드 또는 데이터 멤버)으로 처리되어야 합니다. 구현 세부 사항으로 간주되어야하며 예고없이 변경될 수 있습니다. 4. 하이브리드 상속: 이 양식은 하나 이상의 상속 형태를 결합합니다. 기본적으로 두 가지 이상의 상속 유형이 혼합된 것입니다. 목록 및 문자열과 같은 데이터 구조는 매우 유용하지만 구현하려는 것을 나타내기에는 충분하지 않은 경우가 있습니다. 예를 들어, 애완 동물의 무리를 추적 할 필요가 있다고 가정 해 봅시다. 목록의 첫 번째 요소를 애완동물 의 이름으로 지정하고 목록의 두 번째 요소를 애완 동물의 종으로 지정하여 목록을 사용하여 애완 동물을 나타낼 수 있습니다.