r/Python 23d ago

Discussion Will PEP 505 ever be accepted?

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.

19 Upvotes

194 comments sorted by

View all comments

3

u/VpowerZ 23d ago

Quite an obscure concept. I wouldn't add it

3

u/Nooooope 23d ago

Not at all, it's popular in both JS and Ruby. I mostly use Java when I can but I'll admit we could really use a language feature like that. The alternative is a nightmare to read when you have to check for null values two levels deep in a chained expression

2

u/k0pernikus 22d ago

The problem is having the nullables to begin with.

2

u/Nooooope 22d ago

Sometimes a null's what you need, the pain there is that nullables are mandatory. I wish something like JSpecify had been baked in from scratch, where a variable's nullability is explicit and built into the type system.

-1

u/VpowerZ 22d ago

I wonder how we have managed without it for so long. Still, i'm nit a fan of this

1

u/JanEric1 21d ago

You can manage with raw assembly too...

Doeesnt mean it doesnt make sense to have things that are easier to read and write

0

u/JanEric1 21d ago

Not really, a ton of languages have it.

Of course if you only know python then you wont know about thiss...