본문 바로가기
code/python 300제

파이썬 300제 (#251~) [파이썬 클래스]

by 바야바바 2021. 2. 25.

https://wikidocs.net/7035

 

 

파이썬을 공부할 때 클래스, 객체, 인스턴스를 꼭 알아야 한다.

 

클래스 (class) : 붕어빵 틀과 같은것, 객체나 인스턴스의 설계도

타입을 만들어내는 문법적인 도구를 뜻한다.

 

객체 (object) / 인스턴스 : 붕어빵 틀로부터 만들어진 붕어빵. 이 둘은 같다고 생각해도 된다.

https://velog.io/@hemtory/PythonClass

그냥 이분이 class 설명을 잘해주셔서 적어두었다.

 

Python - 클래스

Python 클래스

velog.io

 

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를 모두 포함하고 있는 것이다! ! (나만 이해할 수 있는 설명이다.)

 

 

 

 

댓글