강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

레몬 녹차 (탈퇴)님의 프로필 이미지
레몬 녹차 (탈퇴)

작성한 질문수

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

메소드 오버라이딩

코딩 출력 오류... 질문있습니다...!

작성

·

346

0

안녕하세요, 선생님

질문이 있습니다!

오류가 왜 났는지 잘 모르겠습니다...

 

class Unit:
  def __init__(selfnamehpspeed):
    self.name=name
    self.hp=hp
    self.speed=speed

    def move(selflocation):
      print("[지상 유닛 이동]")
      print("{0} : {1} 방향으로 이동합니다 [속도 {2}]"\
            .format(self.name, location, self.speed))
      
class AttackUnit(Unit):
  def __init__(selfnamehpspeed):
   Unit.__init__(self, name, hp, speed)
   self.damage=damage 

   def attack(selflocation):
     print("{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}]".format(self.name, location, self.damage))
     def damaged(selfdamage):
       print("{0} : {1} 데미지를 입었습니다.".format(self.name, damage))
       self.hp -= damage
       print("{0} : 현재 체력은 {1}입니다.".format(self.name, self.hp))
       if self.hp <= 0:
         print("{0} : 파괴되었습니다.".format(self.name))
        
class Flyable:
  def __init__(selfflying_speed):
    self.fly=flying_speed
    def fly(selfnamelocation):
      print("{0} : {1} 방향으로 날아갑니다. [속도 {2}]"\
            .format(name, location, self.flying_speed))

class FlyableAttackUnit(AttackUnitFlyable):
  def __init__(selfnamehpdamageflying_speed):
    AttackUnit.__init__(self, name, hp, 0, damage) 
    Flyable.__init__(self, flying_speed)
    def move(selflocation):
      print("[공중 유닛 이동]")
      self.fly(self.name, location) ##ERROR

vulture=AttackUnit("벌처"801020
battlecruiser=FlyableAttackUnit("배틀클루저"500253
vulture.move("11시"
battlecruiser.move(battlecruiser.name, "9시")

답변 1

0

Flyable 클래스에서 self.fly = flyingspeed 부분이 문제인 것 같아요 그부분 수정하시면 될 것 같습니다.

레몬 녹차 (탈퇴)님의 프로필 이미지
레몬 녹차 (탈퇴)

작성한 질문수

질문하기