On Wed, Oct 20, 2021 at 06:17:59PM +0200, Piotr Waszkiewicz wrote: > Do you think about something along those lines? > ``` > phone = book.publisher.owner.phone except AttributeError: None > ```
This is not equivalent to PEP 505's None-aware operators. The semantics are very different, and it is much less safe. If you misspell an attribute: book.publisher.onwer = Owner(...) then the `except AttributeError` code will silently hide that error and return None. PEP 505 does not do that. If you use the wrong type: book.publisher = "O'Reilly Books" then the `except` version will silently hide the error and return None. PEP 505 does not. Versions of this that rely on catching AttributeError are simply wrong and are an anti-pattern. They catch too much and silently turn errors into silent wrong behaviour. PEP 505 does not fall into that trap. -- Steve _______________________________________________ Python-Dev mailing list -- python-dev@python.org To unsubscribe send an email to python-dev-le...@python.org https://mail.python.org/mailman3/lists/python-dev.python.org/ Message archived at https://mail.python.org/archives/list/python-dev@python.org/message/B5LUO5K562IM6667YKDW6N57YEUMJKXG/ Code of Conduct: http://python.org/psf/codeofconduct/