Re: UnboundLocalError: local variable 'colorIndex' referenced
[EMAIL PROTECTED] schrieb: > Can you please tell me what is the meaning this error in general? > > UnboundLocalError: local variable 'colorIndex' referenced before > assignment > > In my python script, > I have a variable define and init to 0, like this > colorIndex = 0 > > and in one of my functions, I increment it by 1 > def myFunc >colorIndex += 1 It is alwasy a better idea to post whole scripts/working examples (even if working actaully means non-working). And this is an example why: Using your old code, things worked. But inside a function, colorIndex isn't in the scope. You could e.g. use a global-statement like this: colorIndex = 0 def foo(): global colorIndex colorIndex += 1 foo() But that is not a very bright idea usually, as globals are difficult to debug. Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: UnboundLocalError: local variable 'colorIndex' referenced
[EMAIL PROTECTED] wrote in news:1140987642.195734.187540 @t39g2000cwt.googlegroups.com: > Can you please tell me what is the meaning this error in general? > > UnboundLocalError: local variable 'colorIndex' referenced before > assignment > > In my python script, > I have a variable define and init to 0, like this > colorIndex = 0 > > and in one of my functions, I increment it by 1 > def myFunc >colorIndex += 1 > > It's a scoping issue. Within myFunc, if colorIndex receives a value (that is, if you assign something to it, as you do here), Python requires a local variable, one known within the scope of function. If you had only *read* the variable (x = colorIndex, for instance), then Python will first look for a local variable, and, finding none, will then look for a global variable, which it would find in this case. The net effect of all this is a common gotcha for new Python users: the 'colorIndex' that is assigned to within myFunc is *not* the same as the one you assigned 0 to earlier; they just happen to share the same name. You can get around this in various ways. One is to declare the variable in myFunc, like this: def myFunc global colorIndex colorIndex += 1 ... -- rzed -- http://mail.python.org/mailman/listinfo/python-list
UnboundLocalError: local variable 'colorIndex' referenced
Can you please tell me what is the meaning this error in general? UnboundLocalError: local variable 'colorIndex' referenced before assignment In my python script, I have a variable define and init to 0, like this colorIndex = 0 and in one of my functions, I increment it by 1 def myFunc colorIndex += 1 -- http://mail.python.org/mailman/listinfo/python-list