인스턴스, 클래스, 독립 도우미의 역할을 구분합니다.
인스턴스 메서드는 self, classmethod는 cls를 받고 클래스 전체와 관련된 대체 생성자에 자주 사용합니다. staticmethod는 인스턴스나 클래스 상태가 필요 없는 관련 도우미를 클래스 이름 공간에 둡니다.
예제에서 @classmethod; @staticmethod 부분부터 찾으세요. 값을 만드는 표현식과 그 값을 다음 문장으로 넘기는 흐름을 한 줄씩 따라가면 실행 결과를 스스로 설명할 수 있습니다.
classmethod는 상속된 하위 클래스를 cls로 받아 확장에 유리합니다. 단순 유틸리티가 특정 클래스와 관련 없다면 모듈 함수가 더 자연스럽습니다.
생성 방식이 여러 개일 때 대체 생성자 이름을 from_string처럼 입력 형식이 드러나게 정합니다.
이 코드는 브라우저의 실제 Python에서 실행됩니다. 먼저 현재 결과를 확인한 뒤 from_dict 대체 생성자를 추가해 딕셔너리에서 강좌를 만드세요.
모든 함수를 클래스 안 staticmethod로 모으는 것은 객체지향 설계가 아니라 이름 공간만 복잡하게 만들 수 있습니다.
직접 바꿔보세요from_dict 대체 생성자를 추가해 딕셔너리에서 강좌를 만드세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.