For a language as well structured as Python, this seems somewhat sloppy, and inconsistant. Or is there some good reason for this?
Here is what I mean: def a(): x = 99 print x def b(): print x a() b() # raises an exception because x is not defined. However in the methods are within a class, the scoping seems to work differently. class ab(): def a(self): self.x = 99 print self.x def b(self): print self.x i = ab() i.a() i.b() # this works, why no lexical scoping? -- http://mail.python.org/mailman/listinfo/python-list