Steven D'Aprano writes:

 > I'm not sure that I understand your example here. Or rather, I 
 > understand your example, I don't understand why you think it disputes my 
 > comment above. Your example uses the list repetition operator, which 
 > returns a list; it is neither something that returns an arbitrary value, 
 > nor a method that operates in place.

My point is that given that the operation involves a non-list and the
operation is in fact defined to be commutative, it *is* something that
returns an arbitrary value -- if your frame of reference is a binary
operation on a set, which involves two operands and a result, all
members of the same set.

 > Here are two hypothetical examples:

[...]

 > It's not clear to me that either of these would make good examples of 
 > augmented assignment:

Sure, but that's not the way this works, picking out obviously bad
examples.  You need to do some work to make the plausible.  In the
case of the list index, renaming the assignment target:

    ndx = [10, 20, 30, 40, 50]
    ndx .= index(40)

To me that looks like a statement-oriented version of the fluent
style.  For the "returning None" example, using .= with a method that
is *defined* to return None is pretty silly.  But consider a binary
tree where the attributes Node.left and Node.right are None if no
subtree is attached:

    # 1776, not Hamilton
    def cool_cool_conservative_men(federalist_heap):
        judge = federalist_heap
        while judge:
            appoint_justice(judge)
            judge .= right

Note that this example could be modified to use a null Node (ie,
bool(null_node) == False) instead of None, in which case it could be
in-place.

Are those styles Pythonic?  Probably not.  Are they even practically
useful?  I'm not sure.  But they're much more the kind of example we
need to look at to understand this proposal.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/L74SCNNYGGJZJXUEYYHY2ZK6TBBIEFUF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to