global variable not working inside function. Increment

charles benoit feather.duster.kung.fu at gmail.com
Mon May 13 10:10:50 EDT 2013


On Friday, September 4, 2009 4:52:11 PM UTC-7, Rami Chowdhury wrote:
> >     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