Gerhard Fiedler wrote: > On 2006-07-27 09:42:16, Bruno Desthuilliers wrote: > > >>>Are you saying Python variables don't hold references to "actual" Python >>>objects? >> >>Exactly. >> >> >>>That idea has been working well for me so far. >> >>It can only take you so far. Now it's time you know the truth: there are >>*no* 'variables' in Python (hence the term 'binding'). >> >>What you really have is (somewhat simplified, of course) a dict with >>names as keys and objects references (think of 'smart' pointers) as >>values. So the name doesn't 'hold' anything - it's really nothing more >>than a name. And the object doesn't know nothing about which names it's >>bound to. > > > I see that, and this thread and your and others explanations have been > helpful in seeing deeper. > > But can't this be expressed -- maybe -- as the variable name "holding" the > reference
s/the/a/ > that is associated to it through the dict? Aside the explicit > mentioning of the dict (which I agree is in itself a value, especially > since that dict exists and can be accessed as dict), the image seems to > provide the same analogy. What bother me with the "hold" term is that I understand it as meaning that the name is some kind of container by itself - which it is not. Consider the following: d = dict() d['name'] = 'parrot' Would you say that the string "name" 'holds a reference' to the string "parrot" ? Obviously not - it's the dict that holds this reference. My 2 cents... -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list