클래스를 정의할 때,
항상 첫 번째 함수는 초기화 함수로 시작하곤 했다.
사실 __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)만 남아 있는 것이다.
'자료구조 & 알고리즘' 카테고리의 다른 글
다이나믹 프로그래밍(Feat. 피보나치 수열) (0) | 2022.07.01 |
---|---|
비트 조작 - 부울 연산자, 비트 연산자, 2의 보수 개념 (0) | 2022.06.18 |
트리 순회 - 전위(Pre-Order), 중위(In-order), 후위(post-Order) 순회 (0) | 2022.04.28 |
비전공자 코딩 테스트 공부법 - 파이썬 알고리즘 인터뷰 (0) | 2022.04.14 |
[자료구조 ] 이진 트리 - 그래프와 차이점, 명칭, 종류 (0) | 2022.04.07 |