코딩한걸음
Published 2024. 1. 18. 09:00
[Python] method type Python
728x90
반응형

1. Python method type

파이썬에서는 메서드를 세 가지 타입으로 분류한다.

  • 인스턴스 메서드(instance methods)
  • 클래스 메서드(class methods)
  • 정적 메서드(static methods)

 

1.1. 인스턴스 메서드 (Instance methods)

  • 인스턴스(객체)에 대한 메서드
  • 첫 번째 파라미터로 `self`를 사용하여, 인스턴스 자신을 참조합니다.
  • 해당 인스턴스의 속성(데이터)과 다른 메서드에 접근할 수 있음
  • 일반적으로 클래스 정의의 기본 메서드 타입

 

1.2. 클래스 메서드 (Class methods)

  • 클래스 자체에 대해 작동
  • `@classmethod` 데코레이터로 정의되며, 첫 번째 파라미터로 `cls`를 사용하여 클래스 자체를 참조
  • 인스턴스 속성이 아닌 클래스 속성(클래스 변수)에 접근하고 수정하는데 사용
  • 인스턴스 생성 없이도 호출 가능

 

1.3. 정적 메서드 (Static methods)

  • 클래스나 인스턴스와는 독립적으로 작동
  • `@staticmethod` 데코레이터로 정의
  • `self`, `cls` 파라미터를 사용하지 않음
  • 독립적으로 사용되기 때문에 다른 속성에 접근하거나 해당 클래스 내의 다른 메소드를 호출할 수 없음
<python />
class Book: # 클래스 변수 (모든 인스턴스에서 공유) total_books = 0 def __init__(self, title): self.title = title # 인스턴스 변수 Book.total_books += 1 # 클래스 변수 증가 # 인스턴스 메서드 def display_title(self): return f"Book title: {self.title}" # 클래스 메서드 @classmethod def total_book_count(cls): return f"Total number of books: {cls.total_books}" # 정적 메서드 @staticmethod def is_book_instance(obj): return isinstance(obj, Book) # 인스턴스 생성 book1 = Book("Python Programming") book2 = Book("Learning AI") # 인스턴스 메서드 호출 print(book1.display_title()) # "Book title: Python Programming" # 클래스 메서드 호출 print(Book.total_book_count()) # "Total number of books: 2" # 정적 메서드 호출 print(Book.is_book_instance(book1)) # True print(Book.is_book_instance("Not a Book")) # False

 

 

 

728x90
반응형
profile

코딩한걸음

@Joonyeol_Yoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!