global variable not working inside function. Increment

Rami Chowdhury rami.chowdhury at gmail.com
Fri Sep 4 19:52:11 EDT 2009


>     global no_picked
>     no_picked = 0
>
>     def picked(object, event):
>           no_picked += 1
>           print no_picked

In order to be able to affect variables in the global scope, you need to  
declare them global inside the function, and not at the global scope. So  
your code should read:

	no_picked = 0

	def picked(object, event):
		global no_picked
		no_picked += 1
		print no_picked

I believe that will work.

On Fri, 04 Sep 2009 16:43:27 -0700, Helvin <helvinlui at gmail.com> wrote:

> Hi,
>
> This increment thing is driving me nearly to the nuts-stage. > <
>
> I have a function that allows me to pick points. I want to count the
> number of times I have picked points.
>
>     global no_picked
>     no_picked = 0
>
>     def picked(object, event):
>           no_picked += 1
>           print no_picked
>
> Error msg says: UnboundLocalError: local variable 'no_picked'
> referenced before assignment
> For some reason, no_picked does not increment, but the printing
> statement works.
>
> Do you know why?
>
> (I'm actually writing this for a vtkrenderwindowinteractor.)
>
> Helvin



-- 
Rami Chowdhury
"Never attribute to malice that which can be attributed to stupidity" --  
Hanlon's Razor
408-597-7068 (US) / 07875-841-046 (UK) / 0189-245544 (BD)



More information about the Python-list mailing list