[Python] 덕타이핑 (Duck Typing)

JinUk Lee·2025년 2월 28일

python 개념 공부

목록 보기
11/14

덕 타이핑이란?

만약 어떤 새가 오리처럼 걷고 헤엄치고 꽥꽥거리면 그것은 오리다 라는 덕테스트에서 유리한 개념이다.

본질적으로 다른 클래스더라도 객체의 적합성이 객체의 실제 유형이 아니라 특정 메소드와 속성의 존재에 따라 결정된다는 개념이다.


class Parrot:
    def fly(self):
        print("Parrot flying")

class Airplane:
    def fly(self):
        print("Airplane flying")

class Whale:
    def swim(self):
        print("Whale swimming")

def lift_off(entity):
    entity.fly()

parrot = Parrot()
airplane = Airplane()
whale = Whale()

lift_off(parrot) # prints `Parrot flying`
lift_off(airplane) # prints `Airplane flying`
lift_off(whale) # Throws the error `'Whale' object has no attribute 'fly'`

덕타이핑이 없는 언어라면 객체의 타입을 우선적으로 검사하겠지만 덕타이핑이 있는 언어는 객체의 타입을 검사하지 않는다.
그러다가 메소드가 호출되는 시점에서 구현되어있지 않다면 에러가 발생하는 방식이다.

출처: https://wikidocs.net/16076

profile
개발자 지망생

0개의 댓글