※ 객체의 생성
- 객체(object)를 생성하려면 클래스가 반드시 정의되어 있어야 한다. 함수를 호출하기 위해서 함수를 정의해야 하는 것과 비슷한 이치라고 볼 수 있다. 다음 코드는 아주 간단한 클래스를 정의한다.
class House():
pass
House 라는 클래스를 만들었는데 내용을 pass 로 만들어 빈 클래스와 다름이 없다. 하지만 클래스라면 비어 있더라도 언제든지 객체를 생성할 수 있는데 객체를 생성할 때는 "클래스명()" 으로 하면 된다.
○ 객체의 초기화(__init__와 self)
- 객체가 어떤 모습인지는 전적으로 클래스에 달려 있기 때문에 클래스의 정의에서 조치가 취해져야 한다.
__init__ 메소드는 클래스의 인스턴스가 생성된 직후에 자동으로 호출되는 메소드인데 해당 메소드를 호출하는 주체는 생성된 인스턴스다. 또한 이는 생성자(constructor)라고도 불린다.
C++ 이나 Java를 해봤다면 알겠지만 this 라는 키워드는 여기서 self와 같은 역할을 한다. self는 현재 메소드를 호출한 객체가 self다. 파이썬에서 객체를 초기화 한다는 것은 객체(self)의 이름공간에 속성을 등록하고 속성값을 초기화한다고 볼 수 있다.
'기타 > What I Learned' 카테고리의 다른 글
[TIL] 메소드 (0) | 2022.01.07 |
---|---|
[TIL] 속성 (0) | 2022.01.06 |
[TIL] 객체지향과 클래스 (0) | 2022.01.03 |
[TIL] 패키지 사용을 위해 알아야 할 것들 (0) | 2022.01.02 |
[TIL] 패키지 (0) | 2022.01.01 |