The meaning of "=" (Was: tough-to-explain Python)

kj no.email at please.post
Wed Jul 8 11:42:09 EDT 2009


In <0778f257-d36c-4e13-93ea-bf8d448c82e2 at b15g2000yqd.googlegroups.com> Paul Boddie <paul at boddie.org.uk> writes:

>On 8 Jul, 16:04, kj <no.em... at please.post> wrote:
>>
>> =A0 <identifier> =3D <expression>
>>
>> and not to those like, for example,
>>
>> =A0 <identifier>[<expression>] =3D <expression>
>>
>> or
>>
>> =A0 <identifier>.<identifier> =3D <expression>
>>
>> The former are syntatic sugar for certain namespace modifications
>> that leave objects unchanged. =A0The latter are syntactic sugar for
>> certain object-modifying method calls that leave namespaces unchanged.

>Almost. The latter can modify namespaces - the objects themselves -
>but through properties or dynamic attribute access, they may choose
>not to modify such a namespace. Really, we can phrase assignment (=3D)
>as follows:

><thing> =3D <expression> # make <thing> refer to the result of
><expression>

>Here, <thing> has to provide something that can be made to refer to
>something else, such as a name within a namespace - the first and last
>of your cases - or an item or slice within a sequence - the special
>second case which is actually handled differently from the other
>cases.

Thanks for this correction.

OK, so, scratching from my original post the case

<identifier>.<identifier> = <expression>

(as being a special case of <identifier> = <expression>), still,
to the extent that I understand your post, the "=" in

  x = 1

means something fundamentally different (in terms of Python's
underlying implementation) from the "=" in

  y[0] = 1

No?

>You could stretch this analogy by treating sequences as
>signposts holding many signs, each adjustable to point to something
>different.

Notionally, yes, I can see that, but there's no counterpart of this
analogy at the level of Python's implementation.  The "x" above is
a sign, as you put it, i.e. an entry in a namespace, but "y[0]"
is, in essence, a method call.

kj



More information about the Python-list mailing list