Hi All,

I have a quick question regarding the modification of global variables within 
functions. To illustrate, consider the following toy example:

a={"1": set()}
b=9

def gt(l):
   a["1"] = a["1"] | set([l])

When calling this last function and checking the a dictionary, I get:

>>> gt(5)
>>> a
{"1": set([5])}


The set in the dictionary was modified. The question is, why isn't it necessary 
to declare a as global within the gt function, as apposed to a case like  

def gt2(l):
   b=b+l

where I need to declare b as global within the function to avoid:

UnboundLocalError: local variable 'b' referenced before assignment.


I apologize if this question has been answered before.

Thank you.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to