Hi Diez, Thanks, I thought it worked similar to C++ where a higher compound could access a lower section. But as it is not straight forward, I think it is better to embed the functionality inside a class, and make it a member variable .. now why didn't I think of that ;-)
Thanks, - Jorgen On 6/6/07, Diez B. Roggisch <[EMAIL PROTECTED]> wrote: > Jorgen Bodde wrote: > > > Hi all, > > > > I wanted to solve a small problem, and I have a function that is > > typically meant only as a function belonging inside another function. > >>From the inner function I want to access a variable from the outer > > function like; > > > > def A(): > > some_var = 1 > > def B(): > > some_var += 1 > > > > B() > > > > > > But this does not work, the function B does not recognize the > > some_var. In my mind I thought the scope would propagate to the new > > function and the vars would still be accessible. > > > > How can I go about this? > > The problem here is the way python determines which variables are local to a > function - by inspecting left sides. > > I'm not sure if there are any fancy inspection/stackframe/cells-hacks to > accomplish what you want. But the easiest solution seems to be a > (admittedly not too beautiful) > > def A(): > some_var = [1] > def B(v): > v[0] += 1 > > B(some_var) > > > Or you should consider making A a callable class and thus an instance, and > some_var an instance variable. Always remember: "a closure is a poor > persons object, and an object is a poor mans closure" > > Diez > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list