본문 바로가기

Python 파이썬

클래스의 관계 표현, object 클래스

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