Why no lexical scoping for a method within a class?

pruebauno at latinmail.com pruebauno at latinmail.com
Wed Dec 17 10:41:16 EST 2008


On Dec 17, 10:19 am, walterbyrd <walterb... at iname.com> wrote:
> 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?

If scoping worked as you want, how, pray tell, would you define object
attributes?



More information about the Python-list mailing list