(나도코딩의 파이썬 입문) 9장. 클래스(p.295~320)

2023. 3. 10. 00:55독서

반응형

안녕하세요!

<코딩 자율학습 나도코딩의 파이썬 입문> 멘토를 담당하게 된 이안입니다.

 

오늘은 9장 '클래스'를 이어서 학습할게요!

 

오늘 공부할 내용은 다음과 같습니다.

 

🧐 공부할 내용(p.295~320)

  • 부모 클래스 호출하기: super()
  • 게임 완성
  • 게임 최종 리뷰

 

1.  부모 클래스 호출하기: super()


super()는 상속하는 부모 클래스의 메서드를 사용할 때 필요합니다.

 

class BuildingUnit(Unit):
    def __init__(self, name, hp , location):
        super().__init__(name, hp, 0)
        self.location = location

 

하지만 이런 방식은 상속하는 클래스가 한 개일 때 사용하는 방식입니다.

 

그럼 2개 이상의 상속을 받을 때는 어떻게 할까요?

 

class FlyableUnit(Flyable, Unit):
    def __init__(self):
        Unit.__init__(self)
        Flyable.__init__(self)

 

이렇게 하면 두 클래스의 생성자를 모두 호출합니다.

 

 

2.  게임 완성


9.6장 게임 완성 부분은 책에 자세하게 설명이 나와있는 만큼 저의 설명이 많이 필요할 것 같지 않아요.

 

이 장에서 새로운 "클래스 변수"라는 개념이 등장했어요. 그래서 이 개념만 빠르게 짚고 넘어가 볼게요.

 

 

지금까지는 인스턴스 변수를 사용했었죠.

 

인스턴스는 인스턴스에 속해 있는 변수라 인스턴스 개별적인 특징을 가집니다.

즉, A인스턴스의 값을 변경한다고 해서 B인스턴스의 값이 갑자기 변하지 않죠.

 

하지만 클래스 변수는 그 클래스에 속해있는 변수로, 정적인 특성을 가집니다.

 

책의 예시로 보자면 Tank 클래스에 속하기 때문에, 클래스 변수로 생성된 변수는 

Tank 클래스의 인스턴스에 모두 일괄 적용되죠.

 

 

그래서 p.302처럼 siege_developed 변수를 정의해서 사용이 가능한 것이죠.

 

한 마디로 '모든 클래스의 인스턴스에서 일괄적으로 적용하고 싶은 상태가 있다'라면 클래스 변수를 사용하면 됩니다.

 

 

 

3.  게임 최종 리뷰


여기까지 게임을 따라 만드시느라 고생하셨습니다!

 

책의 게임은 파이썬에서 사용하는 대부분의 기술들이 들어갔어요.

 

클래스를 사용했고, 인스턴스 변수, 클래스 변수도 사용했고

super()를 통한 슈퍼 클래스 호출도 했고, 다중 상속도 했습니다.

 

 

이제는 파이썬에 많이 익숙해지셨나요?

 

이런 클래스를 작성하는 것이 익숙해지셨다면 저는 개인적으로 지금 파일을 여러 개의 파일로 분리하는 것을 추천드리고 싶어요.

 

 

지금은 한 파이썬 파일에 너무 많은 코드가 들어가 있어요.

 

그렇기 때문에 가독성이 좋지 못하죠.

 

좀 더 가독성 있는 코드를 만들기 위해서 파일을 분리해서 작성해 보시는 것을 추천드릴게요!

 

 


이번 시간에는 드디어 9장 클래스를 마쳤습니다.

고생 많으셨어요!

 

공부하시다 궁금하신 점이 있다면 댓글 남겨주세요~

 

✅ 정리

* 부모 클래스 호출하기: super()

* 게임 완성

    * 클래스 변수

* 게임 최종 리뷰

 

반응형