From 3675080c3f360cf6510a86b45a05c2e344a374cb Mon Sep 17 00:00:00 2001 From: carlitogwapito <20962552+carlitogwapito@users.noreply.github.com> Date: Sat, 17 Oct 2026 18:08:25 -0600 Subject: [PATCH] docs: account for UserDict.get changes in Python 3.12 --- 03-dict-set/missing.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/03-dict-set/missing.py b/03-dict-set/missing.py index 609d39e..8d2134b 100644 --- a/03-dict-set/missing.py +++ b/03-dict-set/missing.py @@ -13,13 +13,18 @@ >>> 'a' in d False -Subclass of ``UserDict``:: +Subclass of ``UserDict``: +Before Python 3.12, ``get`` calls ``__missing__`` through ``Mapping.get``. +Since Python 3.12, ``UserDict.get`` checks membership first, like ``dict.get``:: + + >>> import sys >>> ud = UserDictSub(A = 'letter A') >>> ud['a'] # ✅ 'letter A' - >>> ud.get('a', '') # ✅ - 'letter A' + >>> expected_get = '' if sys.version_info >= (3, 12) else 'letter A' + >>> ud.get('a', '') == expected_get + True >>> 'a' in ud False