Assigning to global variables from within a function

W Isaac Carroll icarroll at pobox.com
Sat Jul 12 16:46:51 EDT 2003


Psymaster wrote:
> I want to do this:
> 
> int= 0
> 
> def change_int():
>     	int += 1
> 
> change_int()
> 
> but of course it doesn't work, Python thinks it is a local 
> variable and refuses to reference the global one. So what would 
> be a good way of doing this. Note that creating a new global 
> variable from within the function isn't convenient because the 
> function is intended to be used in loops.

First of all, remember that "int" is a built-in, so it's not a good idea 
to use it for another purpose.

Have you tried declaring i as a global?

     i = 0

     def change_i():
         global i
         i += 1

     change_i()

This doesn't make a new global variable, it just tells the compiler that 
the i referenced inside the function is the global i, even though it's 
being assigned to.

TTFN






More information about the Python-list mailing list