John Salerno said unto the world upon 16/02/06 09:18 AM: <snip>
> "Name references search at most four scopes: local, then enclosing > functions (if any), then global, then built-in." > > I understand what global and built-in are, and I thought I understood > the concept of local too, but when I got to this sentence (and the > previous sentence), I became confused about the first two scopes. What's > the difference between 'local' and 'enclosing functions'? I thought that > the only way to create a local namespace was if there *was* a function > definition, so now I'm confused by the apparent difference that the > authors are referring to. What's an example of a local scope without > having a function definition? Loops and if statements, perhaps? > > And feel free to dissect that first sentence up above, because I just > don't get it. Does this help? IDLE 1.1.2 >>> scope = "Global" >>> def test(): scope = "enclosing" def nested_test(): print scope nested_test() >>> test() enclosing >>> def test2(): scope = "enclosing" def nested_test(): scope = "nested" print scope nested_test() >>> test2() nested >>> Best, Brian vdB -- http://mail.python.org/mailman/listinfo/python-list