6 Apr
2002
6 Apr
'02
3:13 p.m.
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?
I don't know if it matters for your explanation, but the *big* difference between A.B and A["B"] is that in the latter, A *is* the namespace, while in the former, A *has* a namespace (usually, but not always called A.__dict__). These namespaces are distinct, otherwise you'd have trouble keeping track of the difference between d["clear"] and d.clear... --Guido van Rossum (home page: http://www.python.org/~guido/)