ⓟrogramming/Python

[Python] 인스턴스 메서드, 클래스 메서드 그리고 정적 메서드

뚱땡이 우주인 2016. 10. 13. 14:47

인스턴스 메서드

 - 객체를 통해서 사용되는 메서드

 - 객체를 생성한 이후에 사용이 가능하며 주로 객체의 속성을 조작, 관리 및 정보의 생성에 이용

 - 첫번째 매개변수로 self가 들어옴


클래스 메서드

 - 클래스를 통해서 사용하며, 따라서 객체의 색성 없이도 사용 가능하다.

 - 클래스 메서드에서는 객체의 속성을 접근하거나 사용하려는 행위는 오류를 발생시킨다. (객체와 관련이 없다)

 - 첫번째 매개변수로 cls(현재 클래스)가 들어옴 

 - 클래스 속성에 대한 연산을 제공

 - 데코레이터(@classmethod) 선언이 필요함


정적 메서드

 - 클래스에 소속된 함수

 - 정적 메서드 또한 클래스 메서드처럼 객체 생성 없이 클래스를 통해서 사용이 가능하다.

 - 정적 메서드와 클래스 메서드의 차이점은 클래스 메서드의 경우 첫 번째 인자로 cls를 넘겨 받지만 정적 메서드는

   첫 번재 인자로 cls를 넘겨받지 않는다

 - 관련된 함수를 모아서 하나의 기능 클래스를 만듬 (외부에 일반적으로 범용 목적으로 만드는 유틸리티 클래스)

    여기에는 속성도 없도 오직 정적 메서드로만 구성이 됨

 - 데코레이터(@staticmethod) 선언이 필요함