반응형
상속
클래스 상속
상속
- 두 클래스 사이 부모-자식 관계를 정립하는 것
부모에 정의된 속성이나 메서드를 활용하거나 오버라이딩(재정의)를 하여 활용 => 코드의 재사용성을 높이고 클래스 간의 계층적 관계를 활용함
상속 관련 함수와 메서드
isinstance(object, classinfo)
- classinfo의 instance거나 subclass인 경우 True
issubclass(class, classinfo)
- class가 classinfo의 subclass면 True
- classinfo는 클래스 객체의 튜플일 수 있으며, classinfo의 모든 항목을 검사
super()
- 자식클래스에서 부모클래스를 사용하고 싶은 경우 활용
메서드 오버라이딩
상속 받은 메서드를 재정의
상속받은 클래스에서 같은 이름의 메서드로 덮어씀
부모 클래스의 메서드를 실행시키고 싶은 경우 super를 활용
class Person: def __init__(self, name): self.name = name def talk(self): print(f'반갑습니다. {self.name}입니다.') # 자식 클래스-Professor class Professor(Person): def talk(self): print(f'{self.name}일세.') # 자식 클래스-Student class Student(Person): def talk(self): super().talk() print(f'저는 학생입니다.') p1 = Professor('김교수') p1.talk() # 김교수일세. s1 = Student('이학생') s1.talk() # 반갑습니다. 이학생입니다. # 저는 학생입니다.
다중 상속
- 파이썬은 두개 이상의 클래스를 상속 받을 수 있음
- 중복된 속성이나 메서드가 있는 경우 상속 순서에 의해 결정됨
반응형
댓글