bpo-44752: refactor part of rlcompleter.Completer.attr_matches (GH-27433) (GH-27447)

(cherry picked from commit 6741794dd420c6b9775a188690dbf265037cd69f)

Co-authored-by: Jack DeVries <58614260+jdevries3133@users.noreply.github.com>
diff --git a/Lib/rlcompleter.py b/Lib/rlcompleter.py
index 34b2599..98b7930 100644
--- a/Lib/rlcompleter.py
+++ b/Lib/rlcompleter.py
@@ -186,13 +186,10 @@ def attr_matches(self, text):
                         # property method, which is not desirable.
                         matches.append(match)
                         continue
-                    try:
-                        val = getattr(thisobject, word)
-                    except Exception:
-                        pass  # Include even if attribute not set
+                    if (value := getattr(thisobject, word, None)) is not None:
+                        matches.append(self._callable_postfix(value, match))
                     else:
-                        match = self._callable_postfix(val, match)
-                    matches.append(match)
+                        matches.append(match)
             if matches or not noprefix:
                 break
             if noprefix == '_':