클래스: 객체 만들려고 존재한다.
객체의 아이덴티티는 동적 할당된 이름이 없는 변수이므로 주소로 구분한다.
이름은 두 개 인데 객체는 하나인 경우를 설명한다.
클래스 : 붕어빵 틀
객체 : 붕어빵
필드 : 붕어빵 속 앙금
객체는 이름이 없다.
리스트, 딕셔너리의 기본 호출법은 즉 클래스를 호출하여 list 객체를 만드는 과정이다.
<class 'int'> : int라는 클래스로 만든 객체임을 의미한다.
1. 클래스로 인스턴스 생성하기
객체를 아직 찍어내지 않았는데도 데이터가 나온다.
용어 정리
cls: 클래스를 지칭하는 약어로 해당 클래스를 지칭한다.
self: 자기 자신, A라는 클래스로 만들어진 인스턴스를 지칭한다.
인스턴스 메소드: 인스턴스 안에 있다.
인스턴스가 생성되어도 접근할 수 없으면 쓸 수 없다.
올바른 호출
2. 객체와 인스턴스의 차이
객체는 인스턴스를 포함하는 개념이다.
인스턴스화 : 클래스를 통해 인스턴스를 생성하는 것
인스턴스는 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계 위주로 설명할 때 사용한다.
즉, cat은 객체이고 cat은 Animal의 인스턴스이다.
익명구현 객체: 이름과 주소 없고 한 번만 쓰는 객체
익명 구현 객체를 제외하고 인스턴스라는 표현을 쓴다.
반드시 인스턴스의 필드는 인스턴스의 메소드 안에서 입력해야한다.
인스턴스 메소드나 인스턴스 안의 변수에 값을 넣으므로써 인스턴스의 필드를 생성할 수 있다.
자기 참조 포인트 : 메소드가 호출하게되면 b.x가 존재하게 된다. 인스턴스 메소드를 호출해야지만 필드가 생성된다.
3. 생성자(초기화)
생성자: 메모리에 객체를 만들어주는 것.
def__init__(self):
흑흑 1시간 동안 저장 안 했더니 다 지워졌다.... ㅇ. .ㅇ ㅇ.ㅏ ㅏㅓㅏ ㅓㅏ 다시 써본다.
생성자를 프로그래머가 코드로 넣지 않아도 자동적으로 a 인스턴스가 만들어진다.
생성자에 디폴트 메소드를 매개변수로 넣으면
인스턴스를 만들 때 값을 넣지 않아도 두 개 모두 인스턴스가 생성된다.
따라서 여기까지 배워본 클래스 필드와 인스턴트 필드를 만드려면 다음과 같이 하면 된다.
* 메소드의 5가지 종류
1) 입력: X, 출력: X
2) 입력: 1개, 출력: X
3) 입력: X, 출력: 1개
4) 입력: 2개, 출력: X
5) 입력: 1개, 출력: 1개
클래스메소드에서 클래스 필드로 접근할 때
다음과 같이 @Classmethod를 쓰고 cls 를 사용하여 코드를 작성하면 된다.
쌤 코드 추가!!
핵심 인스턴스는 다 접근할 수 있다. 클래스는 인스턴스에 접근할 수 없고 클래스에만 접근할 수 있다. |
'Programming Language > Python' 카테고리의 다른 글
[파이썬] DAY6 복습 (0) | 2022.01.21 |
---|---|
[파이썬] DAY5 코딩확인 문제 20번 점검 (0) | 2022.01.20 |
[파이썬] DAY5 객체 지향론 (0) | 2022.01.20 |
[파이썬] DAY3 그 동안의 개념으로 문제 풀어보기 (0) | 2022.01.20 |
[파이썬] DAY4 메모리 (0) | 2022.01.19 |