> I have problems with the visibility of variables in python. I am > used to the idea of Javascript and other languages where one can > define > global variables if they are defined outside a function. It seems > Python > is not doing that, but how can I make it work?
Kent has answered the question of how to do it in Python but I would point out that using global variables is, in general, considered bad practice. It is best to minimise their use as muh as possible and pass data into functions and return values from them. There usually are a few globals in any program so don't worry too much about them. BUt on the otherhand if most of your functions are writing to global variables then your program design probably needs rethinking! > around this? I could add gemetenkleur in the argument list of the > funct1 > and funct2 functions, but in my case I don't want this (funct1 will > be a > function to be used in scipy.fmin, and I have the idea that only the > simplex can be as an argument). Passing the values as arguments would IMHO be much better in your case Consider your code, slightly rewritten (with shorter names! :-) to reflect what I think you are trying to do: b=[(1,2,3),(3,4,5),(5,6,7)] def funct1(g): print 'g in func1: ',g a=funct2(g) print a def funct2(k): print 'k in funct2 (should be same as g): ',k return 1 def Do(b,f): g=b[:] print 'g has to be from now b: ',g f(g) return g G = Do(b,funct1) print G > Hope someone can help me. I have the idea this is essential to > understand before continuing more in Python. You might also look at the 'What's in a Name' topic in my tutor for more on this (There is a slightly old German translation too). Alan G Author of the Learn to Program web tutor http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor