이번 포스팅에서는 파이썬의 정적(static) 메서드와 클래스(class) 메서드에 대해서 알아보겠습니다. 정적(static) 메서드와 클래스(class) 메서드에 대해서 살펴보기 전에 가장 기본이 되는 인스턴스(instance) 메서드에 대해서 먼저 짚고 넘어가는 게 좋을 것 같습니다. 클래스에 아무 데코레이터(decorator) 없이 메서드를 선언하면 해당
메서드는 인스턴스 메서드로 취급이 되며, 첫번째 매개 변수로 클래스의 인스턴스가 넘어오게 됩니다. 이 첫번째 매개 변수의 이름은 보통 관행적으로 예를 들어, 위의 인스턴스 메서드는 앞으로 소개해드릴 클래스 메서드나 정적 메서드와 달리 반드시 먼저 인스턴스를 생성 한 후에 해당 인스턴스를 대상으로 호출해야 합니다. 인스턴스 메서드의 첫번째 매개 변수는 자동으로 할당되기 때문에, 호출할 때 넘기는 첫번째 인자는 실제 인스턴스 메서드에서는 두번째 매개 변수에 할당되는 효과가 나타납니다.
파이썬에서는 생성자 오버로딩(overloading)을 지원하기 때문에, 클래스 메서드는 특히 팩토리 메서드를 작성할 때 유용하게 사용됩니다. 예를 들어, 위의 따라서 다음과 같이 팩토리 메서드를 이용해서 다양한 포멧의 데이터로 부터
정적(static) 메서드
정적 메서드는 유틸리티 메서드를 구현할 때 많이 사용됩니다. 예를 들어, 위의
클래스(class) 메서드 vs. 정적(static) 메서드클래스 메서드와 정적 메서드는 별도 인스턴스 생성없이 클래스를 대상으로 클래스 이름 뒤에 바로 차이점은 클래스 메서드를 호출할 때, 첫번째 인자로 클래스 자체가 넘어오기 때문에, 클래스 속성에 접근하거나 다른 클래스 함수를 호출할 수 있습니다. 반면에 정적 메서드를 호출할 때는, 첫번째 인자로 아무것도 넘어오지 않기 때문에, 명시적으로 넘긴 다른 인자만 접근할 수 있습니다. 마치면서이상으로 파이썬에서 |