[Python-Dev] Namespaces

Fredrik Lundh fredrik@pythonware.com
Sat, 6 Apr 2002 10:33:24 +0200

barry wrote:
> I'm curious why setting an attribute isn't a name binding operation?
> Are you binding the object to the attribute name in the object's
> attribute namespace?  Since that maps to a setting in an __dict__
> (usually), what /would/ you call it?

syntactic sugar?

    A = 1 binds 1 to the name "A"

    A.B = 1 calls A.__setattr__("B", 1)

    A["B"] = 1 calls A.__setitem__("B", 1)

it's pretty clear that the first form differs from the others,
but what's the difference between the second and the third
form?  or are all three name binding operations?