Hello all of you, 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?
I think it needs some twist in my mind to get used to it, but I still don't grasp it. Can you help? I have attached a program that is not functioning as I would like to have it functioning. It seems that the 'gementenkleur' in funct1 and funct2 are the value of gemetenkleur at the start of the program, but they don't chance after the definition of gemetenkleur=bmifrao1.bmp I 'know' this is something particular to Python, by how can I work 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). Is there a good page on the web that described this visibility issue (or does it have a different name?) of Python? The delveintopython.pdf does not help me and also a tutorial of hetland.org (Instant python: instant-python.php.htm ) seems not to speak the right language for me;-). Hope someone can help me. I have the idea this is essential to understand before continuing more in Python. All the best, Victor
bmifrao1bmp=[(41, 37, 33), (63, 56, 53), (107, 97, 92), (228, 226, 222), (81, 64, 107), (107, 131, 82), (236, 207, 71), (158, 58, 42)] print 'original bmifrao1bmp ',bmifrao1bmp #gemetenkleur=[(41, 37, 33), (63, 56, 53), (107, 97, 92), (228, 226, 222), (81, 64, 107), (107, 131, 82), (236, 207, 71), (158, 58, 42)] gemetenkleur=[[47,46,47],[62,65,61],[116,114,114],[238,233,232],[65,62,116],[0,144,75],[245,211,0],[207,65,60]] endkleur=[[47,46,47],[62,65,61],[116,114,114],[238,233,232],[65,62,116],[0,144,75],[245,211,0],[207,65,60]] def funct1(): print 'gemetenkleur in func1: ',gemetenkleur a=funct2(gemetenkleur) def funct2(kleuren): print 'kleuren in funct2 (should be same as gemetenkleur): ',kleuren return 1 def Do(): gemetenkleur=bmifrao1bmp[:] print 'gemetenkleur has to be from now bmifrao1bmp: ',gemetenkleur funct1() Do()
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor