On Wed, Jul 25, 2018 at 12:12:40PM -0400, Nicholas Chammas wrote: > When something is "explicit", as I understand it, that means it does what > it says on the cover. There is no unstated behavior. The plain meaning of > `v = a?.b` is that it expands to the longer form (`v = a; if a.b ...`), and > it is just as explicit.
Right. We don't insist on writing mydict.look_up_key_in_self_and_raise_keyerror_if_the_key_is_not_found(key="spam") instead of mydict["spam"] out of a mistaken idea that explicitness requires verbosity and that punctuation is always implicit. Symbols (whether made of text or punctuation) have meaning, and that meaning has to be taken into account. You *can't* spell everything out in full. We always have to take the meaning of something as given, and that can be punctuation just as easily as words. > This reminds me of something I read about once called Stroustrup's Rule > <https://thefeedbackloop.xyz/stroustrups-rule-and-layering-over-time/> [1]: > > > For new features, people insist on LOUD explicit syntax. > > For established features, people want terse notation. > > I think the "explicit vs. implicit" part of this discussion is probably > better expressed as a discussion about "loud vs. terse" syntax. None of the > operators in PEP 505 have implicit behavior, to the best of my > understanding. It's just that the operators are new and have terse > spellings. That is a great observation! Thanks. -- Steve _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/