본문 바로가기
뇌새김질

[Python] Method 종류 (instance, class, static)

by 파란소스 2021. 7. 16.

Python의 메서드는 Instance method, class method, static method가 있다.

1. 인스턴스 메서드(Instance Method)

  인스턴스 변수 및 함수에 접근가능하도록 함수 첫번째 파라미터로 항상 "self"를 갖는다.

 

2. 클래서 메서드(Class Method)

 메서드 앞에 @classmethod 라는 decorator로 표시하며, 첫번째 파라미터로 "cls"를 갖는다.

 클래스 정의에서 메서드 밖에 존재하는 변수인 클래스 변수에 접근 가능

 

3. 정적 메서드(Static Method)

  self파라미터를 갖지않으며, 인스턴스 변수에 접근하지 못한다. 일반적으로 객체와 독립적이지만,

 로직상 클래스에 필요한 경우 사용된다.

 

class Video():

 count = 0 # 클래스 변수

 

# 생성자
def __init__(self, video):
   self.video = video


def __del__(self):
   self.video = None

 

# instance method
def get_video(self):
   ret = self.video
   return ret

 

# class method

@classmethod
def load(cls):

   return cls.count

 

@staticmethod
def prints(msg):

   print(msg)

 

 

video = Video()

video.get_video()  # instance method

 

Video.load()   # class method

Video.prints()  # static method