728x90
클래스의 관계 표현
is - a 관계 (상속을 통해 표현)
- 한 클래스가 다른 클래스의 하위 클래스(subclass)임 을 나타냄
- 하위 클래스는 상위 클래스의 모든 속성과 메서드를 상속 받음
- 이 관계는 일반적으로 "A는 B의 종류다" 라는 형태로 설명
- 예) "강아지" 클래스가 "동물" 클래스의 하위 클래스면, "강이지는 동물의 종류이다"라고 할 수 있다.
has - a 관계 (포함하는 관계)
- 한 클래스의 객체가 다른 클래스의 객테를 속성으로 포함하고 있는 경우를 나타냄
- 이 관계는 일반적으로 "A는 B를 가지고 있다" 라는 형태로 설명
- 예) "자동차" 클래스가 "엔진" 클래스의 객체를 속성으로 가진다면. "자동차는 엔진을 가지고 있다" 라고 할 수 있음.
object 클래스
object 클래스는 파이썬에서 가장 기본적인 클래스
모든 클래스가 가져야 하는 속성과 메서드를 정의하고 있음
- object 클래스에 정의된 주요 메서드 1
__new__(cls, ...):
객체 생성 시에 호풀되는 메서드로, 해당 클래스의 인스천스를 생성하고 반환
__init__(self, ...):
객체 초기화 시에 호출되는 메서드로, 인스턴스 변수를 초기화하는 역할
__str__(self):
객체를 문자열로 표현할 때 호출되는 메서드로, 해당 객체의 문자열 표현을 반환
__repr__(self):
객체를 나타내는 문자열을 반환 하는데, 이 문자열로 해단 객체를 완벽하게 재 생성할 수 있어야 함
__eq__(self, other):
객체의 동등성을 비교 시에 호출되는 메서드로, 다른 객체와 같은 지 비교
__hash__(self):
객체의 해시값을 반환. 해시 값은 해당 객체를 딕셔너리의 키로 사용할 때 필요.
__getter__(self, name):
객체에서 해당 속성을 찾을 수 없을 때 호출되는 메서드. 속성을 동적으로 생성하거나 다른 속성으로 대체할 수 있음
__setter__(self, name, value):
객체에 속성을 할당할 때 호출되는 메서드로, 속성 값을 설정하거나 다른 작업을 수행할 수 있음
__delattr__(self, name):
객체의 속성을 삭제할 때 호출되는 메서드로 해당 속성을 삭제하거나 다른 작업을 수행할 수 있음.
__dir__(self):
객체의 속성 목록을 반환. dir() 내장 함수의 작동 방식을 제어하는 메서드
__class__(self):
객체의 클래스를 반환
__format__(self, format_spec):
객체를 포멧팅할 때 호출되는 메서드로, format() 함수와 str.format() 메서드의 작동 방식을 제어
- object 클래스에 정의된 주요 메서드 2 (시퀀스 자료형 정의 시 활용)
__call__(self, *args **kwargs):
객체를 함수처럼 호출할 수 있게 함. 즉 해당 객체가 함수 객체처럼 동작하도록 할 수 있음.
__len__(self):
객체의 길이를 반환. 주로 시퀀스 자료형에서 사용
__getitem__(self, key):
인덱스를 사용하여 객체의 요소를 가져옴. 주로 시퀀스 자료형에서 사용
__setitem__(self, key, value):
인덱스를 사용하여 객체의 요소 설정. 주로 시퀀스 자료형에서 사용
__delitem__(self, key):
인덱스를 사용하여 객체의 요소를 삭제. 주로 시퀀스 자료형에서 사용
__iter__(self):
객체를 이터레이터로 만들어주는 메서드. 즉 객체가 for 루프에서 사용될 수 있도록 함
__next__(self):
이터레이터 객체에서 다음 요소를 가져오는 메서드. 리 메서드는 __iter__ 메서드와 함께 사용됨
오브젝트 클래스는 다 외우려고 하지말고, 이런게 있구나 하며 받아드려 다음에 사용하고자 할 때
사용해보자.. 아직은 몇개 빼고는 많이 사용하지 않는 듯 하다.
728x90
'Python 파이썬' 카테고리의 다른 글
내장 함수(Built-In Function)_1 (0) | 2023.10.25 |
---|---|
예외처리(Exception) (0) | 2023.10.24 |
다형성(Polymorphism) (1) | 2023.10.24 |
상속, super (0) | 2023.10.24 |
세터,게터 (Setter, Getter) (0) | 2023.10.23 |