globals() e locals()

Le due funzioni globals() e locals() contengono rispettivamente i namespaces globale e locale fino a quel punto.

def A(x,y):
    global z
    w = 3
    print(x)
    print(locals())
    print(globals()['z'])
z = 0
A(1,2)
locals()==globals()

Nel namespace locals() si può inserire una coppia key-value, ma non si può modificare una esistente.

locals()["newValue"] = "newValue"		# funziona
locals()["newValue"] = 1				# errore, perchè "newValue" già esiste