본문 바로가기
개발 공부

Python_7-2

by brandnewthinker 2023. 2. 19.
반응형

상속

  • 클래스 상속

    • 상속

      • 두 클래스 사이 부모-자식 관계를 정립하는 것
    • 부모에 정의된 속성이나 메서드를 활용하거나 오버라이딩(재정의)를 하여 활용 => 코드의 재사용성을 높이고 클래스 간의 계층적 관계를 활용함

  • 상속 관련 함수와 메서드

    • 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() # 반갑습니다. 이학생입니다.
              # 저는 학생입니다.
  • 다중 상속

    • 파이썬은 두개 이상의 클래스를 상속 받을 수 있음
    • 중복된 속성이나 메서드가 있는 경우 상속 순서에 의해 결정됨
반응형

'개발 공부' 카테고리의 다른 글

Python_7-1  (0) 2023.02.19
Python_6  (0) 2023.02.12
Python_5  (0) 2023.02.12
Python_4  (0) 2023.02.06
Python_3  (0) 2023.02.06

댓글