staticMethod vs ClassMethod

mkhome·2021년 6월 17일
0

파이썬

목록 보기
1/3

파이썬 클래스 메소드

  1. 인스턴스 메소드
  2. 클래스 메소드
  3. 스태틱 메소드
  • 인스턴스 메소드
    파이썬 클래스에서 가장 기본이 되는 메소드로 데코레이터 없이 클래스 내부에서 선언되는 메소드
    첫번째 매개변수로 관행적으로 self라는 인자를 통해 인스턴스(클래스)에 접근하며 클래스 메소드를 호출할 수 도 있다.
    인스턴스 메소드는 남은 2개와 다르게 먼저 인스턴스를 생성한 후에 해당 인스턴스를 호출해야한다.
  • 클래스 메소드
    @classmethod라는 데코레이터를 사용해 클래스에 메소드를 선언하며 첫번째 매개변수로 보통 cls를, 클래스 자체를 받는다. 하지만 인스턴스 메소드와 다르게 인스턴스 속성에 접근하거나 다른 인스턴스 메소드를 호출하는 것은 불가능하다.
    상속받은 상태에서 사용할 경우 당연히 부모 클래스의 값을 받아서 진행된다.
  • 정적 메소드
    @staticmethod를 통해 사용하고 해당 메소드는 첫번째 매개변수가 할당되지 않는다. 따라서 정적메소드를 통해 인스턴스, 클래스 속성에 접근하거나 다른 메소드를 호출하는 것은 불가능하다. 보통 유틸리티 메소드를 구현할때 많이 사용된다. (ex : camel to snake or snake to camel)

0개의 댓글