파이썬을 공부할 때 클래스, 객체, 인스턴스를 꼭 알아야 한다.
클래스 (class) : 붕어빵 틀과 같은것, 객체나 인스턴스의 설계도
타입을 만들어내는 문법적인 도구를 뜻한다.
객체 (object) / 인스턴스 : 붕어빵 틀로부터 만들어진 붕어빵. 이 둘은 같다고 생각해도 된다.
https://velog.io/@hemtory/PythonClass
그냥 이분이 class 설명을 잘해주셔서 적어두었다.
self
· 파이썬의 self는 클래스의 인스턴스를 지칭하며 self 키워드를 통해 클래스의 메소드와 속성에 접근할 수 있다.
· 모든 메소드의 첫번째 매개변수는 자기 자신을 가리키는 self 변수이다. 즉 이 메소드를 호출한 현재 객체를 의미한다.
#252 클래스 정의
사용자가 만든 클래스는 반드시 대문자를 써준다.
pass는 무슨 작업을 할지 아직 정하지는 않아서 비워두고 넘어가겠다는 의미라고 한다.
#253 인스턴스 생성
Human이라는 변수가 비어있는 class 객체를 가르키고
항상 객체가 생성이 되었으면 변수로 바인딩을 해주어야 한다.
#254 클래스 생성자 - (1)
생성자는 자동으로 호출되는 함수이다. 그중 하나가 생성자 init 함수이다.
파이썬에서 __init__ 함수는 한 객체에 대한 인스턴스를 생성할 때 호출되는 함수다.
결과값이다
#256 인스턴스 속성에 접근하는 방법
인스턴스 변수에 접근하는 방법은 다음과 같다.
#257 클래스 메소드 -(1) 메소드 추가하기
who(self)라는 함수를 정의해준다.
#258 클래스 메소드 - (2)
#259 클래스 소멸자 (destructor)
객체가 생성될 때 호출되는 생성자가 있다면 반대로 객체가 소멸될 때 호출되는 소멸자라는 것이 존재한다.
이것이 __del__이라고 미리 정의가 되어있다.
이는 리소스 해제 등의 종료작업 할 때 사용된다.
※ 참고로 생성자 / 소멸자와 같이 앞 뒤에 '__'가 붙은 경우에는 특별한 용도로 사용하기 위해 미리 정의해 둔 것이다.
#262
이걸 이해하기 위해 그림을 그려보면
init으로 self, name, code라는 객체를 생성한다. self는 현재 생성된 객체이다. - 인자값 바인딩
그리고 그 밑에 줄 self.name = name / code는 함수를 호출하면 객체 공간이 생성된다.
삼성은 stock안의 name 과 code를 모두 포함하고 있는 것이다! ! (나만 이해할 수 있는 설명이다.)
'code > python 300제' 카테고리의 다른 글
파이썬 300제 (#231~#240) [파이썬 함수(2) - return] (0) | 2021.02.25 |
---|---|
파이썬 300제 (#201~#230) [파이썬 함수(1)] (0) | 2021.02.25 |
파이썬 300제 (#181~#200) [반복분-(3) n차원 리스트] (0) | 2021.02.25 |
파이썬 300제 (#161~#180) [반복분-(2) for] (0) | 2021.02.24 |
파이썬 300제 (#131~#160) [반복분-(1) for] (0) | 2021.02.24 |
댓글