Please re-evaluate your "need" for nesting classes in the first place.
On Tue, Aug 12, 2008 at 1:06 PM, Cousson, Benoit <[EMAIL PROTECTED]> wrote: >> This is a language limitation. >> This is because nested scope is implemented for python function only since >> 2.3 >> allow late binding of free variables. the scope in class statment is not a >> closure, so there is only two possible scope in it : local and global. > > That was my understanding as well, but I think it is a pity to have that > limitation. Don't you think that the same improvement that was done for > method nested scope could be done as well for nested class? > > I can easily fix my current issue by doing the binding after the class > declaration. > My concern is more about the lack of symmetry of that approach; meaning that > if both classes are in the global scope, one can access the others, whereas > if they are in the body of another class they cannot. > > This is OK: > > class A(object): > pass > > class B(object): > foo=A > > > I have to add the binding after the declaration in the case of nested: > > class C(object): > class A(object): > pass > > class B(object): > foo=None > B.foo = A > > That extra step is a little bit painful and should not be necessary for my > point of view. > > >> > I'm wondering as well if the new nonlocal statement will fix that in >> py3k? >> > >> >> nonlocal doesn't adress this issue an I doubt python 3.0 fix it at all. >> >> You have the same problem with generator expressions, which bind lately >> outer >> loop variables : > > Good to know, I was not aware of that. > > Thanks, > Benoit > > -- > http://mail.python.org/mailman/listinfo/python-list > -- Read my blog! I depend on your acceptance of my opinion! I am interesting! http://techblog.ironfroggy.com/ Follow me if you're into that sort of thing: http://www.twitter.com/ironfroggy -- http://mail.python.org/mailman/listinfo/python-list