728x90
1. 메서드
파이썬에서 메서드(Method)는 클래스 내에 정의된 함수를 말합니다. 메서드는 객체 지향 프로그래밍에서 객체의 동작을 정의하는 역할을 합니다. 클래스에 정의된 메서드는 해당 클래스의 모든 객체에서 공유되며, 객체가 메서드를 호출할 수 있습니다.
파이썬에서 메서드를 정의하려면 다음과 같은 형식을 따릅니다
class 클래스명:
def 메서드이름(self, 인자1, 인자2, ...):
# 메서드 코드
예시)
class AttackUnit:
def __init__(self,name,hp,damage):
self.name = name
self.hp = hp
self.damage = damage
def attack(self,location):
print("{0} : {1} 방향으로 적군을 공격합니다. [공격력]:{2}".format(self.name,location,self.damage))
def damaged(self,damage):
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))
robot = AttackUnit("로봇",50,16)
robot.attack("5시")
robot.damaged(25)
robot.damaged(25)
출력)
2. 메서드 오버라이딩(재정의)
#부모 값
class Unit:
def __init__(self,name,hp,speed):
self.name = name
self.hp = hp
self.speed = speed
def move(self,location):
print("[지상유닛 이동]")
print("{0}:{1} 방향으로 이동합니다 [속도 : {2}]".format(self.name,location,self.speed))
#자식 값 #다중상속 부모1
class AttackUnit(Unit):
def __init__(self,name,hp,speed,damage):
Unit.__init__(self,name,hp,speed) # 상속
self.damage = damage
def attack(self,location):
print("{0} : {1} 방향으로 적군을 공격합니다. [공격력]:{2}".format(self.name,location,self.damage))
def damaged(self,damage):
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))
#다중상속 부모2
class Flyable:
def __init__(self,speed):
self.speed = speed
def fly(self,name,location):
print("{0}: {1}방향으로 날아갑니다. [속도:{2}]".format(self.name,location,self.speed))
class FlyableAttack(AttackUnit,Flyable): # 다중 상속시 ,(콤마)로 구분
def __init__(self,name,hp,damage,speed):
AttackUnit.__init__(self,name,hp,0,damage) # 지상 speed는 0
Flyable.__init__(self,speed)
def move(self,location):
print("[공중 유닛 이동]")
self.fly(self.name,location)
car = AttackUnit("차",80,10,20)
cruiser = FlyableAttack("크루저",100,200,5)
car.move("11시")
cruiser.move("1시")
출력
'PYTHON Programming > Python' 카테고리의 다른 글
[python] print와 pass (0) | 2024.05.21 |
---|---|
[python] 상속 (0) | 2024.05.20 |
[python] 매직 메서드 (0) | 2024.05.11 |
[python] 클래스 (0) | 2024.05.11 |
[python] 입출력 (0) | 2024.04.23 |