Python : 메서드(method)

Jinsung·2021년 10월 19일
0

python

목록 보기
9/25
post-thumbnail
post-custom-banner

메서드

메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 파이썬에서 메서드는 크게 인스턴스 메서드(instance method), 클래스 메서드(class method), 정적 메서드(static method)가 있다.

인스턴스 메서드

가장 흔히 쓰이는 인스턴스 메서드는 인스턴스 변수에 엑세스할 수 있도록 메서드의 첫번째 파라미터에 항상 객체 자신을 의미하는 "self"라는 파라미터를 갖는다.

메서드 예시

#메소드 이용 유닛 생성 및 데이지 파괴 구현

# 유닛 생성 클래스
class Unit:
    def __init__(self, name, hp, damage):
        self.name = name #멤버 변수로 선언
        self.hp = hp
        self.damage = damage
        print("{0} 유닛이 생성되었습니다".format(self.name))
        print("체력 {0}, 공격력 {1}".format(self.hp, self.damage))

# 공격 유닛 생성 클래스
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))

firebat = AttackUnit("파이어뱃", 50, 16) #유닛을 생성
firebat.attack("5시") # 5시 공격
firebat.damaged(20) # 20 데미지 받음
firebat.damaged(40) # 40데미지 받고 hp없어서 파괴


#출력값
파이어뱃 : 5시 방향으로 적군을 공격 합니다 [공격력은 16]
파이어뱃 : 20 데미지를 입었습니다.
파이어뱃 : 현재 체력은 30 입니다.
파이어뱃 : 40 데미지를 입었습니다.
파이어뱃 : 현재 체력은 -10 입니다.
파이어뱃 : 파괴되었습니다.
post-custom-banner

0개의 댓글