일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 행렬
- 매일영어습관
- Mac konlpy
- 인덱스
- NLP
- 벡터
- R
- 명령어
- DOMAPI
- 웹폰트
- CSS
- EC2
- 유의수준
- 함수
- 자기지도학습
- 클러스터링기법
- 정수인코딩
- 질의확장
- Ajax
- 노트list
- 프로토콜
- HTML
- JS
- 신뢰구간
- Ajax프레임워크
- DOM
- 노마쌤과 즐거운 영어 습관
- Filter
- 노마쌤
- 파이썬
- Today
- Total
채니의 개발일기
파이썬 모델 - compostion이란? 본문
데이터 모델(Data model)
- 파이썬의 데이터 모델은 객체의 특별한 동작을 정의하기 위한 프레임워크를 제공한다.
- 이는 특별메서드(또는 매직메서드 또는 던더 메서드) 를 통해 구현된다
- 예를들어, '__getitme__', '__setitem__','__len__'등이 있다.
Composition(구성)
- 객체 지향 프로그래밍에서, compostion은 한 객체가 다른 객체를 포함하거나 참조하는 디자인패턴을 의미한다.
- 이는 클래스 간의 관계를 구성하는 방법 중 하나이다.
- 특징
1. 강한 연관성: Compostion은 일반적으로 강한 연관성을 가진 객체 간의 관계를 나탄다. 예를, 'Car' 클래스가 'Engine'클래스의 객체를 포함하는 경우, 'Car'는 'Engine'없이 존재 할 수 없다.
2. 재사용성: Composition을 사용하면 기존의 클래스나 객체의 기능을 재사용 할 수 있다. 이를 통해 중복코드를 줄이고 모듈화를 향상 시킬 수 있다.
3. 유연성: Compostion을 통해 독립적인 클래스들을 조합하여 복잡한 기능을 구현 할 수 있다. 필요에 따라 다른 객체를 포함하거나 참조하는 방식으로 기능을 확장하거 변경 할 수 잇다.
4. Compositon은 'has-a' 관계를 가지며, 한클래스가 다른 클래스의 객체를 포함하거나 참조하는 방식이다. 예를 들어 "Car"는 "Engine"을 가지고 있다는 관계이다.
class Engine:
def start(self):
print('Engine started')
class Car:
def __init__(self):
self.engine = Engine() #Engine클래스의 인스턴스를 포함하게된다.
def start(self):
self.engine.start()
print("car started")
my_car = Car() #출력: Engine Started
my_car.start() #출력: car started
* 코드설명
1. Engine 클래스:
- Engine 클래스는 'strat' 메서드를 가지고있다.
- 'start' 메서드는 "Engine started"를 출력한다.
2. Car 클래스:
- 'Car'클래스의 생성자('__init__')에서는 'Engine'클래스의 인스턴스를 생성하여 'self.engine'에 할당한다. 이렇게 하면 'Car'객체는 내부적으로 'Engine'객체를 포함하게된다.
- 'start' 메서드는 먼저 'self.engine.start()'를 호출하여 엔진을 시작한 후, 'car started'메세지를 출력한다
3. my_car 객체:
- 'Car'클래스의 인스턴스인 'my_car'객체를 생성한다.
-'my_car.start()'를 호출하면, 'Car'클래스의 'start'메서드가 실행되며, 이 메서드 내에서 'Engine'의 'start' 메서드를 호출한다.
'프로그래밍언어 > 파이썬' 카테고리의 다른 글
전처리가 안될때..-> repr() 함수 사용 (1) | 2023.11.20 |
---|---|
파이썬 - pandas 라이브러리 unique() (0) | 2023.11.14 |
파이썬 데이터모델 - __getitem__ 메서드 (0) | 2023.10.13 |
파이썬 - 파이썬 데이터 모델란? (1) | 2023.10.13 |
파이썬- 시퀀스란? (0) | 2023.10.13 |