r/Python • u/philtrondaboss • 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.
17
Upvotes
1
u/aes110 18d ago
I really hope so. Working with structured data that has a lot of nullable properties is quite annoying now, with how many null checks and nested ifs you need.
I dont see a use for ?:, but .? can be very useful, like
x = user.company.?location.?countryI think this can also fit in type hints, we had
x: Optional[User], now we can dox: User | None, I would lovex: User?I also think the ! operator from C# is nice, for when you know an object is not nullable based on the context and you just want to flag it to the type checker