-
[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