프로그래밍 언어/Python

객체 지향 프로그래밍의 핵심, 파이썬 메서드 이해하기 - Python 기초 #11

eco7T 2024. 5. 22. 09:19
반응형

이 글은 파이썬에서 메서드의 개념을 이해하기 쉽게 소개하고자 작성되었습니다. 메서드 정의 및 호출, 매개변수와 인수, 반환값, 범위, 재귀 등의 개념을 예시 코드와 함께 자세히 설명하여 입문자가 쉽게 이해할 수 있도록 구성했습니다.

파이썬 메서드
파이썬 메서드

 

파이썬 메서드

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

 

메서드는 파이썬 객체 지향 프로그래밍의 핵심 개념입니다. 메서드를 잘 활용하면 코드의 가독성과 유지보수성이 높아지며, 프로그램의 복잡성을 낮출 수 있습니다. 

반응형