Hacker News new | ask | show | jobs
by twistedpairs 2290 days ago
Is it just me or is the wikipedia article for duck typing really bad?

The example they have is not illustrative or explanatory at all.

  class Duck:

      def fly(self):  

          print("Duck flying")  



  class Sparrow:

      def fly(self):  

          print("Sparrow flying")  


  class Whale:

      def swim(self):  

          print("Whale swimming")  


  for animal in Duck(), Sparrow(), Whale():

      animal.fly()

output:

  Duck flying  

  Sparrow flying  

  AttributeError: 'Whale' object has no attribute 'fly'  

This moreso shows a dynamic typing issue.
1 comments

Duck typing really only makes sense in the context of dynamic typing.
That's a given. That comment doesn't further the conversation in any way though?
You said it was a dynamic typing issue, not a duck typing one, when in fact the two are inseparable in the example you gave. That is absolutely an example of duck typing, you’re calling the same method on three different types with no subtyping relationship with a single invocation.