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 -- 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/B7FFM2NZO6IERCNXOER5ULVKI7BERXLR/ Code of Conduct: http://python.org/psf/codeofconduct/