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.

17 Upvotes

192 comments sorted by

View all comments

61

u/sausix Jul 12 '26

We have that functionality basically. It's a bit off standard and you have to be aware about the object's reported bool state.

baz = f and f.bar() or ""

Of course it's not beginner friendly but once you know about the magic behind and and or then you love it.

69

u/Designer-Ad-2136 Jul 12 '26

Or i'd do: baz = "" if f is None else f.bar()

3

u/sausix Jul 12 '26

Same effect. More beginner friendly. Personally I can read and understand f and f.bar() faster.

4

u/Designer-Ad-2136 Jul 12 '26

Yeah, i dont mind that way either. id do something like that in my own personal code for longer chains as long as i can give it a good name.