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

Python의 클래스 상속

<시간/>

처음부터 시작하는 대신 새 클래스 이름 뒤의 괄호 안에 부모 클래스를 나열하여 기존 클래스에서 파생하여 클래스를 만들 수 있습니다.

자식 클래스는 부모 클래스의 속성을 상속하며 해당 속성을 자식 클래스에 정의된 것처럼 사용할 수 있습니다. 자식 클래스는 부모의 데이터 멤버와 메서드를 재정의할 수도 있습니다.

구문

파생 클래스는 부모 클래스와 매우 유사하게 선언됩니다. 그러나 상속할 기본 클래스 목록은 클래스 이름 뒤에 지정됩니다. -

class SubClassName(ParentClass1[, ParentClass2, ...]):'선택적 클래스 문서 문자열'class_suite

예시

#!/usr/bin/pythonclass 부모:# 부모 클래스 정의 parentAttr =100 def __init__(self):print "부모 생성자 호출" def parentMethod(self):print '부모 메서드 호출' def setAttr(self, attr ):Parent.parentAttr =attr def getAttr(self):print "Parent attribute :", Parent.parentAttrclass Child(Parent):# 자식 클래스 정의 def __init__(self):print "자식 생성자 호출" def childMethod(self):print '자식 메서드 호출'c =Child() # childc.childMethod()의 인스턴스 # 자식은 메서드를 호출c.parentMethod() # 부모의 메서드를 호출c.setAttr(200) # 부모의 메서드를 다시 호출c.getAttr() # 부모의 메서드를 다시 호출 방법

출력

위의 코드가 실행되면 다음과 같은 결과가 생성됩니다 -

자식 생성자 호출자자 메서드 호출 부모 methodParent 속성 호출 :200

비슷한 방법으로 다음과 같이 여러 상위 클래스에서 클래스를 구동할 수 있습니다. -

class A:# 클래스 A를 정의합니다.....class B:# 클래스 B를 정의합니다.....class C(A, B):# A와 B의 하위 클래스..... 

issubclass() 또는 isinstance() 함수를 사용하여 두 클래스와 인스턴스의 관계를 확인할 수 있습니다.

  • issubclass(sub, sup) 부울 함수는 주어진 서브클래스 sub가 실제로 슈퍼클래스 sup의 서브클래스인 경우 true를 반환합니다.
  • isinstance(obj, 클래스) 부울 함수는 obj가 클래스 클래스의 인스턴스이거나 클래스의 하위 클래스 인스턴스인 경우 true를 반환합니다.