더북(TheBook)

다른 타입에 대해 동작하는 함수를 다형적(polymorphic)이라고 한다. 다형성(Polymorphism) 덕분에 코드 재사용이 증가할 수 있다. 예를 들어 시퀀스의 원소들이 덧셈을 지원한다면 내장 함수 sum은 시퀀스의 원소들을 더할 수 있다.

Time 객체는 add 메서드를 제공하므로 Time 객체도 sum에 사용할 수 있다.

>>> t1 = Time(7, 43)

>>> t2 = Time(7, 41)

>>> t3 = Time(7, 37)

>>> total = sum([t1, t2, t3])

>>> print(total)

23:01:00

일반적으로 함수 내부의 연산이 모두 전달된 타입과 동작할 수 있다면 이 함수는 해당 타입에 사용할 수 있다.

다형성에서 가장 좋은 유형은 의도하지 않은 유형이다. 즉, 이미 작성한 함수를 계획한 적도 없는 타입에 적용하는 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.