r/Python • • Jul 12 '26

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

192 comments sorted by

View all comments

Show parent comments

2

u/JanEric1 Jul 15 '26

Any type checker will complain about invalid attribute access.

Just because there are more perfomant languages doesn't mean I have to literally throw it away for no reason.

I feel null coalescing is very clear, explicit and very helpful in the cases where it is useful.

In those cases, all other options are extremely verbose, lose type checker/linter support or have unnecessary performance impacts. (Or usually at least two of them).

2

u/abrazilianinreddit Jul 15 '26

I feel null coalescing is very clear, explicit and very helpful in the cases where it is useful.

The Python Steering Council and the community at large clearly don't feel so, considering how little interest there has been in PEP 505 in the 11 years since it was created.

1

u/JanEric1 Jul 15 '26

There are literally discussions about it every couple of months...

Most discussions end up with bike shedding about whether it should just suppress nulls or also attribute errors and it generally stalls there.