global variable not working inside function. Increment

feather.duster.kung.fu feather.duster.kung.fu at gmail.com
Mon May 13 10:25:40 EDT 2013


On Monday, May 13, 2013 7:10:50 AM UTC-7, charles benoit wrote:
> 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)

Thank You for setting that straight. I'm just learning Python and NONE of the tutorials I read said anything about that . In fact they all say a global can be called from inside a Function. If possible please contact the ppl that write these things.....I've heard of Ocam's razor but not Hanlon's???



More information about the Python-list mailing list