Paolino wrote: > [EMAIL PROTECTED] wrote: > def enclosing(): > var=[] > var[0]=2 > def enclosed(): > var[0]=4 > which is like saying python is not working > > It's ok to mark non locals,but why var=4 is not searched outside and > var[0]=4 yes?
Because "var=4" rebinds the name "var", while "var[0]=4" does not. It's exactly the same issue with using "global", where you don't need it if you aren't rebinding the name. (Those who don't understand the difference between "rebinding a name" and "modifying an object" will need to figure out that distinction before they can participate much in a discussion about Python scopes, I think.) -Peter -- http://mail.python.org/mailman/listinfo/python-list