Changing global variables in tkinter/pmw callback
Brian Elmegaard
be at mek.dtu.dk
Fri Apr 6 02:06:09 EDT 2001
Thanks, Alex.
Again your pedagogical abilities clarifies python's strangeness for me.
Not that python is strange, just that I have to understand, why it's
not.
Alex Martelli wrote:
> Binding (and re-binding) is most often done through the so-called
> "assignment statement": the reference that is affected is indicated
> by what is on the left of the '=' sign in such a statement, the
> object being bound, by what is on the right of said sign.
So that in fact should be okay as I did....
> The body of this 'apply' is just re-binding a reference which
> happens to be a local variable of this apply function. It is,
...but this is the problem. I didn't (hmm, don't) really understand
lambda's. Now I see how it works. The keyword arguments in the call are
put into the local namespace, and of course they cannot be changed in
the global then.
> I _think_ you mean you are now doing something like:
> def apply(self,button,buttons,setting):
> setting[0] = button.cget('text')
Sure.
> (Or, you could use a 'grab-bag instance object' -- it
> does not have to be a module-object; see for example
> http://www.activestate.com/ASPN/Python/Cookbook/Recipe/52308).
>
Still, I think I am too much of a Fortran programmer to really
understand why it is not possible to change the binding of a reference
(correct term?) to another object just by assignment.
Is it due to some decisions for the implementation of python or is it
because of some technical reasons having to do with oo-languages?
--
Brian
http://www.et.dtu.dk/energysystems
http://www.rk-speed.dk http://fiduso.dk http://sunsite.auc.dk/dk-tug
\TeX, tak
More information about the Python-list
mailing list