The binding operator, and what gets bound to what (was: About Modifying Globals)
Ben Finney
ben+python at benfinney.id.au
Fri Dec 5 00:36:14 EST 2014
Steven D'Aprano <steve+comp.lang.python at pearwood.info> writes:
> LJ wrote:
>
> > def gt(l):
> > a["1"] = a["1"] | set([l])
>
> The difference between this example and your second one:
>
> > def gt2(l):
> > b=b+l
>
>
> is that the second is a "binding operation" and the first is not.
I disagree; they're both binding operations (and they both use the
binding operator ‘=’ to express this).
The difference between the two is: what reference is being bound?
* In the first example, the reference is ‘a["1"]’.
That reference is re-bound to a different object; whatever object it
was previously bound to is forgotten.
* In the second example, the reference is ‘b’.
That reference is re-bound to a different object; whatever object it
was previously bound to is forgotten.
So, both of them bind (or re-bind) a reference to an object. The only
difference between the operations is the parameters.
--
\ “People always ask me, ‘Where were you when Kennedy was shot?’ |
`\ Well, I don't have an alibi.” —Emo Philips |
_o__) |
Ben Finney
More information about the Python-list
mailing list