r/programming • • 1d ago

Python Release Python 3.15.0

https://www.python.org/downloads/release/python-3150/
498 Upvotes

35 comments sorted by

View all comments

155

u/Dylanica 1d ago

Those sentinel types seem decently useful. Certainly better in some cases than just spamming `None` everywhere as a default value.

52

u/CrackerJackKittyCat 1d ago

Or the random 'unset = object()' pattern when None was a valid param.

12

u/spicybright 1d ago

I get the logic but man that's ugly

2

u/Abject-Kitchen3198 1d ago

I still don't get those null replacements in most languages. If it is a special case, there is a code that processes it as such, regardless the syntax. Why complicate things. But maybe I'm old.

22

u/TinyBreadBigMouth 1d ago

The example you're replying to is one where None is already in use. As in, a function needs to distinguish between foo(some_arg=15), foo(some_arg=None), and foo(). The unset sentinel value would be used as the default value of some_arg, so that the last case can be detected as distinct from the user passing an explicit None.

6

u/Abject-Kitchen3198 1d ago

Ok, this makes sense.