On Wed, Jul 25, 2018 at 9:20 PM Chris Angelico <ros...@gmail.com> wrote:
> On Thu, Jul 26, 2018 at 11:02 AM, David Mertz <me...@gnosis.cx> wrote: > > That is disingenuous, I think. Can this raise an AttributeError? > > > > spam?.eggs?.bacon > > > > Of course it can! And this is exactly the pattern used in many examples > in > > the PEP and the discussion. So the PEP would create a situation where > code > > will raise AttributeError in a slightly—and subtly—different set of > > circumstances than plain attribute access will. > > I don't understand. If it were to raise AttributeError, it would be > because spam (or spam.eggs) isn't None, but doesn't have an attribute > eggs (or bacon). Exactly the same as regular attribute access. How is > it slightly different? Have I missed something? > That was my reaction, too. food = spam?.eggs?.bacon Can be rewritten as: food = spam if spam is not None and spam.eggs is not None: food = spam.eggs.bacon They both behave identically, no? Maybe I missed the point David was trying to make.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/