포스터 하나로 상속개념 간파하기
본 포스트는 직접 미션을 구현해가며 객체지향 프로그래밍의 개념을 익히고자 만들었습니다. 기반 언어는 python 입니다.
포스트를 시작하기 앞서 python에서 상속 기능을 어떻게 수행할 수 있는지 기초 개념을 잡고자 한다.
클래스 변수, 인스턴스 변수 개념부터 잡고 가는것이 좋다.
class Account:
num_accounts = 0
def __init__(self, name):
self.name = name
Account.num_accounts += 1
def __del__(self):
Account.num_accounts -...
다형성을 이용해 Generic한 클래스 구성하기
클래스 다형성의 필요성을 알아볼 것임
아래와 같이 추상 인터페이스와, 그를 활용해 구현한 PathInputData, LineConterWorker 두 클래스가 있음
이해를 위해 필요한 개념
다형성(Polymophism)
하나의 객체(Object)가 여러가지 타입을 가질 수 있는 것
구현 방법
오버로딩
메소드 이름을 같게
매개변수의 개수 또는 타입을 다르게
오버라이딩 (상속이 선...
클래스를 활용한 코드 리팩토링
클래스가 필요한 순간
dict 에 dict을 저장해야 구현 가능하다고 느끼는 순간 클래스로 나누는것이 필요하다
아래 예시를 통해 어떻게 그런 순간을 맞닥뜨리는지 보자
class SimpleGradebook:
def __init__(self):
self._grades = {}
def add_student(self, name):
self._grades[name] = []
def report_grade(self, name, score):
self._grades[name].append(score)
def average_grad...
객체지향 프로그래밍이란
학생들이 교실청소를 분업해서 진행해야 하는 상황 가정
진행해야 하는 작업은 총 3가지 (바닥쓸기, 창문닦이, 칠판닦이)
아래로 내려갈수록 점점 코드가 발전하는(체계화되는) 방식
절차지향 프로그래밍
학생 한명 한명에게 명령어를 직접 쳐서 바닥쓸기, 창문닦이, 칠판닦이를 시킴
같은 작업인데도 지정하는 학생이 달라질 때 마다 코드를 똑같이 다시 쳐야하기 때문에 중복이 심함
반복문으로 중복코드를 조금 없앰
학생을 인자로 받을 수 있는 함수에 2에서 활용한 반복문까지 써서 중복 코드 줄임
여전히 중복이 많음
여기 3번까지가 절차지향 프로그래밍 ...