ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] 메소드
    python 2025. 5. 28. 11:17

    메소드

     

    Python에서 메소드(method)는 클래스 안에 정의된 함수

     

    🔹 쉽게 말하면?

    메소드는 객체가 할 수 있는 행동이에요!

     

    붕어빵에 비유하면:

    • 붕어빵이 "먹힌다", "포장된다" 같은 행동을 하는 거예요.
    • 이 행동들을 코드로 만들면 메소드가 됩니다.

     

    🔹 예제

    class Dog:
        def __init__(self, name):
            self.name = name  # 멤버변수
    
        def bark(self):       # 메소드 (개가 짖는다)
            print(f"{self.name}가 멍멍 짖어요!")
    
        def sit(self):        # 메소드 (개가 앉는다)
            print(f"{self.name}가 앉았어요.")
    dog1 = Dog("초코")
    dog1.bark()  
    dog1.sit()

     

    초코가 멍멍 짖어요!

    초코가 앉았어요.

     

    🔹 메소드의 구조

    def 메소드이름(self, [다른 매개변수들]):
        # 동작 정의

     

    • self: 해당 객체 자신을 가리킴
    • 실제 메소드 호출할 때는 self를 따로 전달하지 않아요. 파이썬이 자동으로 넣어줘요.

     

    🔹 메소드와 함수의 차이?

    구분 함수 (function) 메소드 (method)
    위치 클래스 밖 클래스 안
    사용 그냥 호출 (print()) 객체를 통해 호출 (dog.bark())
    첫 번째 인자 없음 보통 self를 첫 번째 인자로 받음

     

    ✅ 요약

    • 메소드는 클래스 안에 있는 함수
    • 객체가 할 수 있는 행동을 정의
    • 항상 첫 번째 매개변수로 self를 사용

     

    실습

    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} : 파괴되었습니다.")
                
    firebat1 = AttackUnit("파이어뱃", 50, 16)
    firebat1.attack("5시")
    
    # 공격 2번 받는다고 가정
    firebat1.damaged(25)
    firebat1.damaged(25)

     

     

    파이어뱃 : 5시 방향으로 적군을 공격합니다. [공격력 16]
    파이어뱃 : 25 데미지를 입었습니다.
    파이어뱃 : 현재 체력은 25 입니다.
    파이어뱃 : 25 데미지를 입었습니다.
    파이어뱃 : 현재 체력은 0 입니다.
    {0} : 파괴되었습니다.

    'python' 카테고리의 다른 글

    [python] 다중상속  (0) 2025.05.28
    [python] 상속  (0) 2025.05.28
    [python] 클래스  (0) 2025.05.28
    [python] with  (1) 2025.05.27
    [python] pickle  (0) 2025.05.27
Designed by Tistory.