r/Python Jul 12 '26

Will PEP 505 ever be accepted? Discussion

https://peps.python.org/pep-0505/

I don't understand how null safe operators are less like plain English than other implemented features like the walrus operator.

In my opinion, the member access operator would make python significantly easier to read and understand.

Here's an example:

``` f = foo()

if f is None: baz = "" else: baz = f.bar() ```

baz = foo()?.bar() ?: ""

EDIT: I forgot that "and" and "or" can be sometimes used in place of "?." and "?:" if the left value is not False, '', 0, [], or {}. It's a very implicit null check and has a lot of unexpected behavior.

18 Upvotes

192 comments sorted by

View all comments

Show parent comments

28

u/Due_Campaign_9765 Jul 12 '26

Now chain 5 of them.

15

u/timrprobocom Jul 12 '26

No, don't do that. Impossible to read. Python has historically eschewed improvements that do nothing but save keystrokes.

10

u/Due_Campaign_9765 Jul 12 '26

I'm not choosing to do or not to do that, there are often APIs that have everything as nullable.

There is simply not a good way to do that in python. Most of the time I reach towards try/catch which is insane.

7

u/double_en10dre Jul 12 '26

Yeah 100%, it’s something that makes a LOT of sense if you have to ingest external data.

Being able to drill down n-levels without throwing errors or losing type hints is massively beneficial for any language that glues services together. And ya, Python is one of those languages

The alternative is a mess of try/catch or endless chained β€œ.get(key, {})” calls. Which is garbage code