[Tutor] global list

Albert-Jan Roskam fomcl at yahoo.com
Thu Apr 24 10:14:33 CEST 2014






----- Original Message -----
> From: Steven D'Aprano <steve at pearwood.info>
> To: tutor at python.org
> Cc: 
> Sent: Thursday, April 24, 2014 3:00 AM
> Subject: Re: [Tutor] global list
> 

<snip>

> You only need to define variables as global if you assign to them:
> 
> def function(x):
>     global a
>     a = [1, 2, 3, x]  # assignment to variable "a"

ah, thanks, I always wondered about that. But doesn't it make the function (slightly) faster if you use 'global' when you only refer to that global variable? You tell the interpreter that it is not needed to search for that variable locally, so no time wasted on that. The code below indicates that it makes NO difference (well, a whopping 2ns), but maybe for larger functions it does?

albertjan at debian:~$ ipython
Python 2.7.3 (default, Mar 13 2014, 11:03:55) 

In [1]: a = True

In [2]: def function():
   ...:     x = True if a else False
   ...:     

In [3]: %timeit function()
10000000 loops, best of 3: 122 ns per loop

In [4]: def function():
   ...:     global a
   ...:     x = True if a else False
   ...:     

In [5]: %timeit function()

10000000 loops, best of 3: 120 ns per loop


More information about the Tutor mailing list