 <p>The nested lexical scope example that someone gave gives several benefits.</p> <ol> <li>"Safer" globals</li> <li>It is one method to embed DSL's into your program. </li> </ol> <p>I think that is a very good example of the differences between the two languages. Ruby is simply more flexible. Python can be flexible, but you often have to do extreme contortions to get there, which makes it not worth the hassle.</p> <p>Sorry for not posting under the original answer, I guess I don't have privileges to do that.</p>