py/modbuiltins: Fix getattr to work with class raising AttributeError.

Fixes issue #6089.
This commit is contained in:
Damien George
2020-05-29 10:28:38 +10:00
parent da71f55e23
commit 203b10703e
2 changed files with 17 additions and 1 deletions

View File

@@ -16,3 +16,15 @@ print(getattr(a, "meth")(5))
print(getattr(a, "_none_such", 123))
print(getattr(list, "foo", 456))
print(getattr(a, "va" + "r2"))
# test a class that defines __getattr__ and may raise AttributeError
class B:
def __getattr__(self, attr):
if attr == "a":
return attr
else:
raise AttributeError
b = B()
print(getattr(b, "a"))
print(getattr(b, "a", "default"))
print(getattr(b, "b", "default"))