On Sun, 26 Feb 2006 21:58:30 +0100, Diez B. Roggisch wrote: > [EMAIL PROTECTED] schrieb: >> Can you please tell me what is the meaning of >> UnboundLocalError: local variable 'colorIndex' referenced before >> assignment >> >> in general? > > Well, pretty much of what it says: You tried to access a variable without > prior assignment to it. Like this: > > > a = b**2 + c**2 > > Won't work. But if you do > > b = 2 > c = 3 > a = b**2 + c**2 > > it works. I suggest you read a python tutorial - plenty of the out there, > google is as always your friend.
Diez' advice is good, but his example is wrong: it will raise a NameError exception. When you have a function like this: def foo(x): z = x + y return z Python's scoping rules treat x and z as local variables, and y as a global variable. So long as y exists, the function will work. When you do this: def bar(x): y = 2 z = x + y return z the scoping rules treat y as a local variable, because you assigned to it. But with this: def baz(x) z = x + y y = 2 return z the scoping rules see the assignment to y at compile time, so y is treated as a local variable. But at run time, y is accessed before it has a value assigned to it: UnboundLocalError Hope this helps. -- Steven. -- http://mail.python.org/mailman/listinfo/python-list