All about Python/기본

14. Python 클래스(Classes)와 객체(Objects)

① 클래스는 객체를 생성하는 사용자 정의 프로토타입이다.

  ㉠ 클래스에서 인스턴스(instance)로 구체화해야 메모리에 원하는 값이 할당된다.

  ㉡ 클래스에서 인스턴스로 바뀔 때 생성자가 실행되어 객체가 초기화(initialization)된다.

② 클래스, 객체, 인스턴스의 차이를 구분하기 위해 아래 그림을 보자.

  ㉠ 클래스는 공통된 형질(character)끼리 묶어서 정의한 것이다.

    ⓐ 클래스 a를 원, 클래스 b를 삼각형으로 정의할 수 있다.

    ⓑ 클래스 c를 테두리가 흰색인 도형, 클래스 d를 테두리가 파란색인 도형으로 정의할 수 있다.

  ㉡ 인스턴스는 클래스와 동일한 성질을 공유하는 대상을 말한다.

    ⓐ 인스턴스 1과 인스턴스 3은 같은 클래스 a에 속해 있다.

    ⓑ 인스턴스 1과 인스턴스 2는 서로 다른 클래스에 속해 있다.

    ⓒ 인스턴스 1과 인스턴스 3은 서로 다른 인스턴스이다.

    ⓓ 각각의 인스턴스들은 모두 다른 인스턴스이다.

  ㉢ 객체는 클래스의 인스턴스를 말한다.

    ⓐ 인스턴스 1~9는 모두 객체이다.

    ⓑ 인스턴스 1과 인스턴스 2는 서로 다른 클래스의 객체이다.

③ 클래스에서 생성된 인스턴스를 지칭할 때 보편적으로 객체라고 하지만 객체와 인스턴스는 유사하게 사용되는 단어이므로 크게 구분할 필요는 없다.

④ 클래스는 생성자(constructor), 소멸자(destructor) 멤버 변수(member variables)와 메서드(methods)로 구성되어 있다.

  ㉠ 생성자와 소멸자는 필수적이나 기본적으로 아무것도 안하도록 미리 정의되어 있다.

    ⓐ 생성자는 인스턴스가 만들어질 때 자동으로 실행되는 메서드이다.

    ⓑ 소멸자는 인스턴스가 소멸될 때 자동으로 실행되는 메서드이다.

    ⓒ 생성자와 소멸자에 대한 자세한 설명은 아래를 참고하자.

 

Python 생성자와 소멸자

  ㉢ 생성자를 호출할 때 생성자 이름 대신 클래스명을 사용한다. <>HTML 삽입 미리보기할 수 없는 소스 ㉣ 파이썬은 새로운 인스턴스가 생성될 때마다 자동으로 생성자를 호출한다. ⓐ 생성자

hemahero.tistory.com

  ㉡ 멤버 변수는 클래스 내부에서만 정의된 변수를 말한다.

  ㉢ 메서드는 함수의 일종으로 클래스 내부에서 정의된 함수를 말한다.

    ⓐ 메서드는 기존의 함수와 동일한 원리로 동작한다.

⑤ 키워드 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