[Chris Angelico]
Almost. Except for the problem that "disgusting" is a subjective term.
Yes. Thank you for explaining the joke.
[Brice Parent]
I don't believe we need spam.eggs.cheese.aardvark? (there is exactly the same number of use cases). We win a bit in readability as it's closer to most spoken languages, but we lose in granularity as we're hiding any error that would raise if spam.eggs returned None, so it's not a full win on this side either...
First, I mostly proposed that alternative to serve my argument that there may be a better syntax that PEP 505 would make impossible down the road. It's a half-baked proposal at best and I agree with your over-all sentiment that it's probably not something we should consider either. That being said; in the normal usage of '?.' and '?[]' it would make little sense to only check the beginning of the expression:
spam?.eggs.cheese.aardvark # why would you ever do this?
It makes some sense to do this:
spam.eggs.cheese?.aardvark
But in my proposal, you could force any part of the expression to evaluate before the '?' with parentheses and expose whatever errors that might throw:
(spam.eggs.cheese).aardvark?