① 클래스는 객체를 생성하는 사용자 정의 프로토타입이다.
㉠ 클래스에서 인스턴스(instance)로 구체화해야 메모리에 원하는 값이 할당된다.
㉡ 클래스에서 인스턴스로 바뀔 때 생성자가 실행되어 객체가 초기화(initialization)된다.
② 클래스, 객체, 인스턴스의 차이를 구분하기 위해 아래 그림을 보자.
㉠ 클래스는 공통된 형질(character)끼리 묶어서 정의한 것이다.
ⓐ 클래스 a를 원, 클래스 b를 삼각형으로 정의할 수 있다.
ⓑ 클래스 c를 테두리가 흰색인 도형, 클래스 d를 테두리가 파란색인 도형으로 정의할 수 있다.
㉡ 인스턴스는 클래스와 동일한 성질을 공유하는 대상을 말한다.
ⓐ 인스턴스 1과 인스턴스 3은 같은 클래스 a에 속해 있다.
ⓑ 인스턴스 1과 인스턴스 2는 서로 다른 클래스에 속해 있다.
ⓒ 인스턴스 1과 인스턴스 3은 서로 다른 인스턴스이다.
ⓓ 각각의 인스턴스들은 모두 다른 인스턴스이다.
㉢ 객체는 클래스의 인스턴스를 말한다.
ⓐ 인스턴스 1~9는 모두 객체이다.
ⓑ 인스턴스 1과 인스턴스 2는 서로 다른 클래스의 객체이다.
③ 클래스에서 생성된 인스턴스를 지칭할 때 보편적으로 객체라고 하지만 객체와 인스턴스는 유사하게 사용되는 단어이므로 크게 구분할 필요는 없다.
④ 클래스는 생성자(constructor), 소멸자(destructor) 멤버 변수(member variables)와 메서드(methods)로 구성되어 있다.
㉠ 생성자와 소멸자는 필수적이나 기본적으로 아무것도 안하도록 미리 정의되어 있다.
ⓐ 생성자는 인스턴스가 만들어질 때 자동으로 실행되는 메서드이다.
ⓑ 소멸자는 인스턴스가 소멸될 때 자동으로 실행되는 메서드이다.
ⓒ 생성자와 소멸자에 대한 자세한 설명은 아래를 참고하자.
㉡ 멤버 변수는 클래스 내부에서만 정의된 변수를 말한다.
㉢ 메서드는 함수의 일종으로 클래스 내부에서 정의된 함수를 말한다.
ⓐ 메서드는 기존의 함수와 동일한 원리로 동작한다.
⑤ 키워드 class를 사용해 클래스를 정의할 수 있다.
㉠ 생성자를 호출하여 객체를 생성해야 한다.
㉡ 파이썬에서는 __init__()이 기본 생성자의 이름이다.
⑥ 특정 인스턴스의 멤버 변수를 수정할 수 있다.
㉠ 인스턴스의 이름에 점 연산자로 멤버 변수를 선택해 직접 갱신할 수 있다.
ⓐ 갱신이라는 뜻은 기존의 있던 값을 수정하는 것과 새로운 변수를 생성하는 것 모두를 일컫는다.
㉡ 멤버 변수를 수정하는 메서드를 사용하여 간접적으로 갱신할 수 있다.
㉢ 키워드 del을 이용해 객체 혹은 매개변수를 삭제할 수 있다.
'All about Python > 기본' 카테고리의 다른 글
16. Python 사용자 입력 (0) | 2022.10.03 |
---|---|
15. Python 클래스와 상속 (0) | 2022.10.01 |
13. Python 함수(Functions) (0) | 2022.07.29 |
12. Python While 반복(Loops) (0) | 2022.07.27 |
11. Python 사용자 입력(User Input) (0) | 2022.07.27 |