title: Is this duck-typing in Python?
body: <p>Here is some Ruby code:</p>
  
  <pre><code>class Duck
    def help
      puts "Quaaaaaack!"
    end
  end
  
  class Person
    def help
      puts "Heeeelp!"
    end
  end
  
  def InTheForest x
    x.help
  end
  
  donald = Duck.new
  john = Person.new
  print "Donald in the forest: "
  InTheForest donald
  print "John in the forest: "
  InTheForest john
  </code></pre>
  
  <p>And, I translated it to Python:</p>
  
  <pre><code>import sys
  
  class Duck:
          def help():
              print("Quaaaaaack!")
  
  class Person:
          def help():
              print("Heeeelp!")
  
  def InTheForest(x):
      x.help()
  
  donald = Duck()
  john = Person()
  sys.stdout.write("Donald in the forest: ")
  InTheForest(donald)
  sys.stdout.write("John in the forest: ")
  InTheForest(john)
  </code></pre>
  
  <p>The result is the same. Does this mean my Python code is using duck-typing? I couldn't find a duck-typing example, so I thought there may be no duck-typing in Python. There is <a href="http://en.wikipedia.org/wiki/Duck_typing#In_Python">code</a> in Wikipedia, but I couldn't understand it.</p>