안녕하세요.
이전에 initialize로 정의했을 때는
def initialize(self, name, email, password):
아래 2가지 방법으로 다 초기화가 됐는데,
user1.initialize("Young", "young@codeit.kr", "123456")
User.initialize(user3, "Taeho", "taeho@codeit.kr", "123abc")
__init__으로 정의하면
def __init__(self, name, email, password):
위 2가지 방법이 안되고 아래 경우만 초기화 되는 것 같네요.
user1 = User("Young", "young@codeit.kr", "123456")
initialize 에서 __init__ 으로 정의한 것만 바뀌었는데,
초기화하는 방법(인스턴스 메소드 사용법)까지 바뀐 것 같습니다.
이 부분이 잘 이해가 안되는데 special (magic) method에서는 왜 이렇게 사용해야 하는지 설명부탁드립니다.
initialize는 메소드를 통해서 생성시키는 방법에 대해 간략하게 배운 것이고 실제 생성자는 __init__에 정의해놓고 생성할 땐 클래스명에 ()를 붙이고 () 안에는 적절한 파라미터를 넣어서 인스턴스를 생성합니다.
왜 사용해야 하는지라기 보단 원래 그러한 방법인데 아마 설명을 쉽게 하시려고 메소드로 먼저 만들어서 보여준 다음 공식적인 방법을 설명해주신게 아닐까 생각합니다.