오늘도 어제에 이어서 “한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online” 의 챕터 8-3. 상속을 듣고 정리해보았다. 참고로 이 포스팅은 공부용으로 강의 내용을 요약한 것으로 자세한 강의 내용은 위 링크를 참조 할 것.



아래는 공부 인증 사진.


2022-05-10-Python-Photo1

2022-05-10-Python-Photo2



03. 상속

1. 상속의 개념

  • 자식클래스는 부모클래스의 속성과 메서드를 그대로 가져올 수 있다.

2022-05-10-Python-Photo3


  • 상속이 필요한 이유: 클래스를 하나하나 설정하게 될 경우 관리포인트가 너무 많아진다.

  • 예시

    2022-05-10-Python-Photo3

  • ‘몬스터’ 관련코드가 중복으로 발생 ⇒ 중복을 없애 효율적으로 만드는 방법은?


  • 세 클래스의 공통된 부분을 합쳐 ‘몬스터’라는 클래스를 생성한 뒤 상속하여 중복을 없애 코드를 간결하게 작성할 수 있다.

2022-05-10-Python-Photo3



2. 상속 사용 방법

  • 위 예시를 코드로 작성해보자.
  • 먼저, 부모클래스를 정의해보자
class Monster:
    def __init__(self, name, health, attack):
        self.name = name
        self.health = health
        self.attack = attack
    def move(self):
        print("지상에서 이동하기")
  • 속성
    • 이름
    • 체력
    • 공격력
  • 메서드
    • 이동하기

  • 자식클래스 정의(__init__ 는 생략 가능)
class Wolf(Monster):
    pass # 상속 받은 메서드만 사용

class Shark(Monster):
    def move(self):
        print("헤엄치기")

class Dragon(Monster):
    def move(self):
        print("날기")
  • 속성 (Monster 로부터 상속받은)
    • 이름
    • 체력
    • 공격력
  • 메서드 오버라이딩: 메서드 재 정의
    • 헤엄치기
    • 날기



3. 실습

# 상속
# : 클래스들에 중복된 코드를 제거하고 유지보수를
#    편하게 하기 위해 사용

class Monster:
    def __init__(self, name, health, attack):
        self.name = name
        self.health = health
        self.attack = attack
    def move(self):
        print(f"[{self.name}] 지상에서 이동하기")

class Wolf(Monster):
    pass

class Shark(Monster):
    def move(self): # 메서드 오버라이딩
        print(f"[{self.name}] 헤엄치기")

class Dragon(Monster):
    def move(self): # 메서드 오버라이딩
        print(f"[{self.name}] 날기")

wolf = Wolf("울프", 1500, 200)
wolf.move()

shark = Shark("샤크", 300, 400)
shark.move()

dragon = Dragon("드래곤", 8000,800)
dragon.move()



이번 포스팅에서는 상속의 개념에 대해 알아보았다. 다음 포스팅에서는 오버라이딩, 클래스 변수에 대해 알아보도록 하자.


본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.



#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #캐시백챌린지 #캐시백 #환급챌린지 #한번에끝내는파이썬웹개발초격차패키지Online