On Tue, Dec 15, 2020 at 04:15:52PM +0000, David Mertz wrote:
> It feels like a chimp trying to pantomime a philosopher, really. As
> someone with a doctorate in philosophy, I feel triggered :-).
Quoting "A Fish Called Wanda":
Otto: Apes don't read philosophy.
Wanda: Yes they do, Otto, they just don't understand it.
Although I don't think that Paul is a Nietzsche-quoting ex-CIA hired
killer. At least I hope not.
In fairness, Paul has a lot of interesting ideas, even if they don't
always pan out. But this thread is an excellent example of how *not* to
engage and persuade an audience:
- long and rambling, slow to get to the point;
- expecting the readers to make the same "Aha!" moment you did when
you could just explicitly state your observation;
- patronising statements that your readers are just a step away from
getting the right answer, but will they make it?
- repeated hints that you have seen the correct answer and reached
enlightenment, without telling the reader what the answer is;
- comparisons and analogies that don't work;
(under Python semantics, the closest analogy to `(obj.method)()`
is not `a+(b+c)` but `(a+b)+c`)
Paul, if you are reading this, you are coming across as neuro-atypical.
If that is the case, trust me on this, the strategy you are taking in
this thread is very unsuccessful as a persuasive and/or teaching tool.
Under existing Python semantics, round brackets (parentheses) have a few
different meanings, but the relevant one as far as I can tell is
grouping, which changes the order that operations are performed.
In expressions, I don't think that there are any cases where brackets
change the semantics of operations: `(b + c)` remains the plus operator
even with the brackets, it just changes the order of operation relative
to any surrounding expression.
The only counter-example I can think of where brackets changed the
semantics of a statement was the old Python 2 `except ...` statement:
except A, B, C, D:
block
except (A, B, C, D):
block
If I recall correctly, the first catches exceptions A, B and C, and
binds the exception to D; the second catches exceptions A, B, C and D
and doesn't bind to anything.
As you can imagine, this was an extremely error-prone and surprising
"Gotcha".
In principle, we could give `(obj.method)()` a distinct meaning to the
unbracketed form. But such a distinction would be surprising, it would
clash with grouping:
(obj.method or fallback_function)()
and I have no idea what distinct meaning you want to give it, or why. If
you are serious about continuing this thread, please get to the point of
*what* change in semantics you want to give the bracketed form and *why*
you think it would be useful.
--
Steve
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/B7FFM2NZO6IERCNXOER5ULVKI7BERXLR/
Code of Conduct: http://python.org/psf/codeofconduct/