# PEP 823: None-aware access operators

**URL:** <https://discuss.python.org/t/pep-823-none-aware-access-operators/109159>\
**Category:** PEPs\
**Created:** [September 21, 2026, 10:32pm UTC](https://discuss.python.org/t/pep-823-none-aware-access-operators/109159 "2026-09-21T22:32:35Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![encukou](https://sea2.discourse-cdn.com/flex002/user_avatar/discuss.python.org/encukou/32/2461_2.png) [@encukou](https://discuss.python.org/u/encukou)\
**Post date:** [September 22, 2026, 10:00am UTC](https://discuss.python.org/t/pep-823-none-aware-access-operators/109159/5 "2026-09-22T10:00:13Z")

</div>

Thank you for the PEPs! These do look like the best version of the proposal. Best of luck with the PEP process!

(I’m -0; I don’t run into needing this often enough.)

The PEP mentions the projects `glom`, `jmespath`, `nonesafe`, `pymaybe`. Did contact their authors/maintainers for feedback or endorsement? It’s good to pull someone in the discussion if you mention them.

The [No-Value Protocol](https://peps.python.org/pep-0823/#no-value-protocol) rejected idea should probably mention PEP 661 sentinels – an official generalization of `None` that doesn’t have `math.nan`’s issues. (I still prefer the crisp “`None` only” rule, though: sentinels are only meant for cases where `None` isn’t enough; writing out `None if x is MISSING else x.foo` is nice and explicit.)

Note that IPython uses `?` (and `??`) for [accessing help](https://ipython.readthedocs.io/en/stable/interactive/python-ipython-diff.html#accessing-help), and it’s very popular/useful there. CPython’s REPL has been getting non-Python syntax (like `help` without parentheses), and we might want `?` for that purpose too.  
IPython doesn’t allow `?` with arbitrary expressions, but I’ve sometimes wanted to be able to use it that way. So, to me, this expression from the PEP’s Motivation reads as “I want to get help on `data.customer`”:

```python
data.customer?.user.name.lower()

```

I don’t have a concrete proposal in this area, but PEP 823 does limit future options.

* * *

> [@AlSweigart](#):
>
> Just to clarify, the splitting of PEP 505 into these two PEPs is so that they can be considered independently? As in, we could accept one but not the other?

Both PEPs cover this. From [PEP 823](https://peps.python.org/pep-0823/#none-aware-access-operators):

> the coalescing operators were moved into a separate document, see [PEP 824](https://peps.python.org/pep-0824/ "PEP 824 – None-coalescing operators"). Both proposals can be adopted independently of each other.

---

_[View the full topic](https://discuss.python.org/t/pep-823-none-aware-access-operators/109159)._
