python

덕 타이핑(Duck typing)

장곰부대 2018. 4. 29. 00:33

만약 어떤 새가 오리처럼 걷고, 헤엄치고, 꽥꽥거리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다.

class Duck: def quack(self): print u"꽥꽥!" def feathers(self): print u"오리에게 흰색, 회색 깃털이 있습니다." class Person: def quack(self): print u"이 사람이 오리를 흉내내네요." def feathers(self): print u"사람은 바닥에서 깃털을 주어서 보여 줍니다." def in_the_forest(duck): duck.quack() duck.feathers() def game(): donald = Duck() john = Person() in_the_forest(donald) in_the_forest(john)

해당 변수, 메소드만 가지고 있으면 다른건 무시하고 실행한다는 뜻이다.

솔직히 자료형을 명시안해도 되는 파이썬이기 때문에 모르고 사용하고 있음


타 언어들은 덕 타이핑을 제네릭으로 표현 하던데 

아무래도 덕 타이핑 개념에는 파이썬이 딱 맞지 않을까?