반응형
이 글은 파이썬에서 메서드의 개념을 이해하기 쉽게 소개하고자 작성되었습니다. 메서드 정의 및 호출, 매개변수와 인수, 반환값, 범위, 재귀 등의 개념을 예시 코드와 함께 자세히 설명하여 입문자가 쉽게 이해할 수 있도록 구성했습니다.
파이썬 메서드
1) 메서드란 무엇인가?
파이썬에서 메서드(method)란 클래스 내부에 정의된 함수를 의미합니다. 클래스 안에서 메서드는 해당 객체가 수행할 수 있는 동작을 정의합니다. 메서드를 통해 객체의 속성(attribute)을 조작하거나 특정 작업을 수행할 수 있습니다. 메소드를 사용하면 코드를 모듈화하고 재사용할 수 있습니다.
2) 메소드 정의 및 호출
- 메소드는 'def' 키워드와 함께 정의합니다.
- 메소드 이름 작성 규칙: 소문자와 언더스코어(_)를 사용합니다.
- 메소드 호출 시에는 객체 이름과 메소드 이름을 사용합니다.
- 예시:
class Dog:
def __init__(self, name, breed):
self.name = name
self.breed = breed
def bark(self):
print(f"{self.name}가 멍멍!")
my_dog = Dog("해피", "푸들")
my_dog.bark() # 출력: 해피가 멍멍!
3) 매개변수와 인수
- 메소드는 매개변수를 받을 수 있습니다.
- 매개변수는 메소드 정의 내에서 지정합니다.
- 메소드 호출 시 전달하는 값을 인수라고 합니다.
- 예시:
class Calculator:
def add(self, a, b):
return a + b
calc = Calculator()
result = calc.add(3, 5)
print(result) # 출력: 8
4) 반환값
- 메소드는 특정 값을 반환할 수 있습니다.
- 'return' 키워드를 사용하여 값을 반환합니다.
- 반환값이 없으면 'None'이 반환됩니다.
- 예시:
class Student:
def __init__(self, name, grade):
self.name = name
self.grade = grade
def get_grade(self):
return self.grade
student = Student("John", 90)
grade = student.get_grade()
print(grade) # 출력: 90
5) 범위(Scope)
- 메소드 내부에서 정의된 변수는 메소드 내부에서만 접근 가능합니다.
- 클래스 변수는 모든 메소드에서 접근 가능합니다.
- 예시:
class Circle:
pi = 3.14 # 클래스 변수
def __init__(self, radius):
self.radius = radius # 인스턴스 변수
def area(self):
return Circle.pi * self.radius ** 2 # 클래스 변수와 인스턴스 변수 접근
circle = Circle(5)
print(circle.area()) # 출력: 78.5
6) 재귀 메소드
- 재귀 메소드는 자기 자신을 호출하는 메소드입니다.
- 재귀는 복잡한 문제를 작은 단위로 분할하여 해결할 수 있습니다.
- 하지만 주의해야 할 점은 무한 재귀로 인해 메모리 오버플로가 발생할 수 있습니다.
- 예시: 팩토리얼 계산
class Math:
def factorial(self, n):
if n == 0:
return 1
else:
return n * self.factorial(n-1)
math = Math()
result = math.factorial(5)
print(result) # 출력: 120
메서드는 파이썬 객체 지향 프로그래밍의 핵심 개념입니다. 메서드를 잘 활용하면 코드의 가독성과 유지보수성이 높아지며, 프로그램의 복잡성을 낮출 수 있습니다.
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
파이썬 데코레이터 가이드: 함수 래핑, 로깅, 캐싱 및 타임아웃 활용법 - Python 기초 #13 (0) | 2024.05.24 |
---|---|
Python 상속 코드 재사용성 극대화를 위한 객체 지향 프로그래밍 가이드 - Python 기초 #12 (0) | 2024.05.23 |
파이썬 매직 메서드 완벽 가이드, 클래스 기능 확장하기 - Python 기초 #10 (0) | 2024.05.21 |
파이썬 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 클래스와 객체 이해 - Python 기초 #9 (0) | 2024.05.20 |
초보도 쉽게 이해하는 파이썬 모듈 활용법, import, 패키지, 실제 사용 예시까지 - Python 기초 #8 (0) | 2024.05.17 |