본문 바로가기
취미부자/취미1_코딩

패스트캠퍼스 챌린지 14일차 / 클래스 / 오버라이딩,클래스 변수

by 연습중인최 2021. 11. 14.
반응형

 

어렵다... 점점 내 머릿속이 엉망진창이 되어가지만 일단 쭉 강의를 따라 가보자!


--오늘의 학습 범위--

 

Ch 08. 클래스

CH08_04. 오버라이딩,클래스변수

CH08_05. 클래스 실습문제

 


상속의 심화 과정

상속에 대한 예제 업그레이드

<z.B> RPG게임 업데이트

-지난 클래스에서 인스턴스 속성으로 3개의 스킬 추가하기.

-드래곤이 스킬을 쓰면 속성 중에 하나가 무작위로 사용됨

#오버라이딩
#상속 업그레이드
import random


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 __init__(self, name, health, attack):
        super().__init__(name,health,attack)  # 부모클래스의 메서드 불러올 수 있음 (다 쓰기 귀찮으니까)
        self.skills = ("불뿜기", "꼬리치기", "날개치기")

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

    def skill(self):
        print(f"[{self.name}] 스킬 사용{self.skills[random.randint(0,2)]}")


#인스턴스 만들기
wolf =wolf("울프", 1500, 200)
wolf.move()

shark = shark("샤크",3000,400)
shark.move()

dragon = dragon("드래곤", 8000, 800)  #네번째 인자 넣기 /변할리 없으니 튜플로 /
dragon.move()
dragon.skill()

 

클래스 변수

: 인스턴스들이 모두 공유하는 변수

인스턴스속성/변수들은 각자 인스턴스 만의 값을 가지고 있다. 모두가 공유하는 변수를 만들 경우가 필요하다면 

그때 클래스 변수를 만들어서 공유한다.

*** max_num = 1000

 

 

private  변수

 

 

 

 

 

 

 

 

link : 

https://bit.ly/3FVdhDa

 

수강료 100% 환급 챌린지 | 패스트캠퍼스

딱 5일간 진행되는 환급챌린지로 수강료 100% 환급받으세요! 더 늦기전에 자기계발 막차 탑승!

fastcampus.co.kr

 

 

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

반응형

댓글