Files
python-examples/doc/10_02_methos.md
2025-01-20 02:26:20 +09:00

2.4 KiB

메서드

파이썬 클래스 내에는 인스턴스 메서드, 클래스 메서드, 정적 메서드라는 다양한 종류의 메서드가 존재합니다. 각 메서드는 다른 용도와 특징을 가지고 있으며, 어떤 상황에서 어떤 메서드를 사용해야 할지 이해하는 것이 중요합니다.

  • 인스턴스 메서드: 개별 객체의 상태를 변경하거나, 객체 고유의 기능을 구현할 때 사용합니다.
  • 클래스 메서드: 클래스 레벨에서 공통적으로 사용되는 기능을 구현하거나, 클래스 변수에 접근할 때 사용합니다.
  • 정적 메서드: 클래스와 인스턴스 상태와 무관한 일반적인 기능을 구현할 때 사용합니다.

인스턴스 메서드 (Instance Method)

객체(인스턴스)의 속성에 접근하고 변경할 수 있는 메서드입니다.

항상 self를 첫 번째 인자로 받아 자신을 가리킵니다.

개별 객체의 상태를 변경하거나, 객체의 고유한 기능을 구현할 때 사용합니다.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"안녕하세요, 저는 {self.name}입니다.")

위 예시에서 greet 메서드는 인스턴스 메서드이며, self.name에 접근하여 개별 객체의 이름을 출력합니다.

클래스 메서드 (Class Method)

클래스 자체에 속하며, 클래스 변수에 접근하거나 클래스 레벨의 작업을 수행하는 메서드입니다.

cls를 첫 번째 인자로 받아 클래스 자신을 가리킵니다.

클래스 메서드임을 나타내기 위해 @classmethod 데코레이터를 사용합니다.

클래스 레벨에서 공통적으로 사용되는 기능을 구현하거나, 서로 다른 클래스 간의 관계를 정의할 때 사용합니다.

class MyClass:
    x = 10  # 클래스 변수

    @classmethod
    def class_method(cls):
        print(cls.x)

정적 메서드 (Static Method)

클래스와 인스턴스 상태에 의존하지 않는, 일반 함수처럼 동작하는 메서드입니다.

특별한 인자를 받지 않습니다.

정적 메서드임을 나타내기 위해 @staticmethod 데코레이터를 사용합니다.

클래스와 관련된 유틸리티 함수를 정의할 때 사용합니다.

class MyClass:
    @staticmethod
    def greet(name):
        print(f"Hello, {name}!")