클래스를 정의할 때,

 

항상 첫 번째 함수는 초기화 함수로 시작하곤 했다.

 

사실 __init__ 메서드를 

 

왜 쓰는지 모르고 그냥 써왔다. 

 

초기화 함수를 지정하지 않고 class를 정의 해본다면

 

초기화 함수의 역할을 가장 간단히 이해할 수 있다.

 

1. 초기화 함수를 사용하지 않고 class를 정의

 

숫자 1~5까지 리스트 샘플을 만드는 클래스 내에,

 

초기화 함수 없이 숫자를 추가하고, 리스트를 출력하는 함수를 생성했다.

 

 

클래스 객체를 생성하고 숫자 6을 추가한 후, 해당 리스트를 출력하면

 

[1, 2, 3, 4, 5, 6]이 출력된다.

 

 

다시 클래스 객체를 생성하고 이번에 숫자 7을 추가한 후, 리스트를 출력하면

 

[1, 2, 3, 4, 5, 7]이 아니라 [1, 2, 3, 4, 5, 6, 7]이 출력된다.

 

클래스를 새로 생성하더라도, 초기값 리스트(1~5까지 숫자)가 아니라,

 

직전에 만들어진 객체를 그대로 받아서 쓴다.

 

 

 

2. __init__ 메서드를 사용하여 class를 정의

 

반면에 __init__ 메서드를 생성한 후,

 

클래스 객체를 새로 생성하면,

 

새로 생성된 객체는 초기화 되어 있는 사실을 알 수 있다. 

 

 

즉, 이전에 생성한 클래스 객체에 숫자 6을 추가했더라도,

 

클래스 객체를 새로 생성하면 숫자 6은 사라지고, 초기값(1~5)만 남아 있는 것이다.

 

 

 

 

 

 

 

 

+ Recent posts