try this:

gname = 'nate'
def test():
   gname = 'amy'
   print gname

test()
print gname

outputs:
'amy'
'nate'

whereas this:
gname = 'nate'
def test():
   global gname
   gname = 'amy'
   print gname

test()
print gname

outputs:
'amy'
'amy'

Luis M. González wrote:
> Bruno Desthuilliers wrote:
> >
> > def doIt(name=None):
> >   global gname
> >   if name is None:
> >     name = gname
> >   else:
> >     gname = name
> >
>
> Sorry for this very basic question, but I don't understand why I should
> add the global into the function body before using it.
> This function works even if I don't add the global.
> Just to try this out, I wrote this variant:
>
> gname = 'Luis'
>
> def doIt2(name=None):
>       if name is None:
>               name = gname
>       return name
>
> print doIt2()  --> returns Luis.
>
> So, what's the point of writing the function this way instead?
>
> def doIt2(name=None):
>         global gname
>       if name is None:
>               name = gname
>       return name
> 
> 
> luis

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to