🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

staticmethod의 존재이유

21.09.17 08:47 작성 조회수 196

3

안녕하세요. 강의 잘 보고 있습니다.

다름이 아니라 스태틱메소드는 왜 존재하는지 의문이 생겼습니다.

제가 생각했을 때 staticmethod를 작성하면 장점은 그저 class의 namespace안에 들어오는 정도입니다.

class namespace에 들어가게 되면 클래스나 인스턴스를 통해서 method를 실행한다는 명시적인 사실만 있다고 판단됩니다. 

무엇때문에 staticmethod가 존재하는걸까요?

답변 1

답변을 작성해보세요.

2

안녕하세요!

답변이 늦었네요 ㅠ_ㅠ

먼저 인스턴스 메서드가 아닌 classmethod와 staticmethod를 사용하는 이유는 인스턴스가 공통적으로 사용하는 변수를 제어할 경우 사용됩니다. https://www.inflearn.com/questions/308912 확인해주세요!

추가적으로 classmethod와 staticmethod의 큰 차이점은 상속을 할 때입니다!

classmethod의 cls 인자는 어떤 부모 클래스를 상속 받든 현재 클래스가 cls에 들어가는 반면 staticmethod는 어떤 자식 클래스에서 호출을 하든 처음 정의된 부모 클래스에 해당하는 영역의 값을 사용합니다!

(상속에 대한 차이점은 후에 강의하는 상속을 보시고 다시 답글을 보시면 좋을 것 같습니다! 그럼에도 이해가 되지 않으시면 자세한 예시를 들어 새로 보충 강의를 찍겠습니다!)

즐거운 추석 보내세요 :)

채널톡 아이콘