inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

메소드 오버라이딩

질문이 있습니다.

209

gulsam

작성한 질문수 10

1

1. Flyable 클래스에 이름정보가 따로 저장이 안 되었다는 말이 무슨 의미인가요? Flyalbe의 __init__ 메소드에 name 파라미터를 넣어준다면 fly 메소드의 name 파라미터는 안 넣어도 됐을 거라는 뜻인가요?

class Flyable:
    def __init__(selfnameflying_speed):
        self.flying_speed = flying_speed

    def fly(selflocation):
        print (f"{self.name} : {location} 방향으로 날아갑니다. [속도 {self.flying_speed}]")

class FlyableAttackUnit(AttackUnitFlyable):
    def __init__(selfnamehpdamageflying_speed):
        AttackUnit.__init__(self, name, hp, 0, damage) # 지상 speed = 0
        Flyable.__init__(self, name, flying_speed)

    def move(selflocation):
        print ("[공중유닛 이동]")
        self.fly(location)
battlecruiser = FlyableAttackUnit("배틀크루저"500253)
battlecruiser1 = FlyableAttackUnit("배틀크루저"500253)

battlecruiser1.fly ("1시")
battlecruiser.move("9시")

한 번 수정해봤는데 큰 문제 없을까요? 이러면 배틀크루저.name은 AttackUnit과 Flyable 양쪽 2개가 생성되는 건가요?

2. 메소드 오버라이딩은 상속받은 클래스에 존재하는 같은 이름의 메소드를 대체하게 되는 건가요? 그렇다면 기존의 Unit의 move 메소드는 덮어씌우져서 쓸 수 없게 되는건가요?

python

답변 1

1

Robert

1. 아마 메모리 주소를 사용하는 것이라, 생성보다는 가르킨다는 표현이 맞을껍니다. 하지만 그런 식으로 관리하면 나중에 객체 관리가 힘들어 집니다.

2.네 아래는 간단한 예제입니다.

class ParentA:
    def __init__(self , name):
        self.name = name
    
    def whois(self):
        print("my name is {0} ".format(self.name))

class ChildA(ParentA):
    def __init__(self , name):
        self.name = name
    
    def whois(self):
        print("my parent name is {0} ".format(self.name))

parentA  = ParentA("A")
parentA.whois() # my name is A

childA = ChildA("A")
childA.whois() # my parent name is A

quiz 8 오류 문제

0

69

1

str() 작성 위치

0

51

1

아나콘다

0

60

1

윈도우 설치 도와주세요

0

74

1

std_weight함수에서weight만return가능한가요?

0

67

1

오른쪽위 실행버튼을 누르면 터미널에 에러가 뜨고 컨트롤+F5를 누르면 에러가 안뜹니다.

0

34

1

설치해서 시작하는데 문제가 있습니다.

0

69

1

함수 입력할 때 설명 툴팁 나오게 하려면 어떻게 하나요?

0

103

1

2장 환경설정 문의

0

73

1

스타크래프트 프로젝트

0

74

1

python 파일명.py 입력시 Python 출력

0

133

1

로드맵 질문있습니다!

0

85

2

오류

0

74

1

질문 있습니다.

0

74

1

블로그에 학습한 내용을 정리해도 괜찮을까요?

0

171

1

#퀴즈 3의 5번 질문

0

72

1

print("ㅋ"*5) 에 대한 결과가 도출되지 않습니다

0

81

1

가변인자의 위치가 중요한가요?

0

79

1

vscode옛날 버전 설치

0

220

1

글자색상이 선생님처럼 안나옵니다

0

186

1

슬프네

0

155

1

quiz 6번 관련 문의입니다.

0

129

1

퀴즈#3에 대해서 이렇게 작성해도 되나요?

0

193

1

피드백 부탁드립니다

0

93

1