Re: 심화문제 35.6
, 도장_ 관리자님이 작성@classmethod로 from_string 메서드를 만들어야 하는 게 맞습니다.
@classmethod
def create(cls):
p = cls() # cls()로 인스턴스 생성
return p
UNIT 35.3의 예제가 기본 틀입니다. 인스턴스를 생성하면 생성한 인스턴스를 변수에 저장하고, 그 변수를 반환해줘야 create를 호출한 쪽에서 생성된 인스턴스를 받을 수 있습니다.
문의한 코드를 보면 return이 없으니까 클래스 메서드 내부에서 인스턴스를 생성하지만, 반환하지 않으니 메서드 호출 이후에 인스턴스가 사라지게 됩니다.
UNIT 35의 예제 코드와 비교해보세요.
클래스 메서드는 클래스 레벨에서 공유하는 것이고,
인스턴스 메서드는 인스턴스 레벨에서 공유하는 것입니다.
클래스는 시스템에 1개만 존재하는 것이고,
인스턴스는 생성하는 만큼 다수가 존재할 수 있습니다.
진부한 예지만, 붕어빵 틀(클래스)은 1개만 있어야 하고,
틀로 찍어 내는 붕어빵(인스턴스)는 메모리가 허용한다면
무한히 만들 수 있습니다.