On Sun, 26 Feb 2006 21:58:30 +0100, Diez B. Roggisch wrote:
si***************@gmail.com 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.