객체지향언어(OOP) python을 위코드에서 배우면서 수많은 클래스를 만들고
사용해봤지만 클래스에 대한 깊이있는 공부를 해본거 같지 않아서,
지금 알고리즘을 공부하고 있는 과정에서 갑자기 개념에 대한 확신이 생기지 않아서,
한번 정리해 보기로 하였다.
클래스, 객체, 인스턴스는 무엇인가 예전에 c++를 공부하면서 클래스의 생성자, 불멸자?
이런식의 얘기를 들어본 같긴한데 한번 정리해보도록하겠다.
class : 똑같은 무엇인가를 계속 만들어낼수 있는 설계 도면 같은것 (붕어빵 틀)
object : class에 의해서 만들어진 피조물 (붕어빵)class Hello: pass a = Cookie()
cf. 객체와 인스턴스의 차이
- 클래스에 의해서 만들어진 객체를 인스턴스라고한다.
- a를 단독으로 지칭 할때 : 'a는 객체'
- 클래스와 연관지어서 지칭할때 : 'a는 Cookie의 인스턴스'
self는 class의 instance를 가리킵니다
class SayHello: def __init__(self): print("self:", id(self)) a = SayHello() print('instance:',id(a)) >> self : 140045489039392 >> instance : 140045489039392
init은 initilize method(초기화 매서드)를 말합니다.
class를 생성했을때 초기화를 시켜주는 특수한 메서드 입니다.
메서드는 일반함수의 구분을 위한것으로 클래스의 함수를 매서드라고 칭합니다.
__init__
method 의 첫번째 인자는 self__init__
method name 을 초기화합니다. s
라는 instance(객체)로 만들었습니다.