Ruby's yield is essentially just calling an anonymous function given to it in the form of a block.  e.g., the following code snippets are equivalent<p>Ruby:<p><pre><code>    def foo(bar)
      if block_given?
         yield bar
      end
    end

    foo 5 { |x| puts x } # prints 5
</code></pre>
Python:<p><pre><code>    def foo(bar,fcn):
        fcn(bar)


    foo(5, lambda x: sys.stdout.write("%d\n" % x))
</code></pre>
The only real difference being that the ruby code is calling a block versus a "real" function.<p><i>edit</i> Oops, had this page open for a while, didn't realize someone had replied in the interim, making my response somewhat redundant