summaryrefslogtreecommitdiffstatshomepage
path: root/tests/basics/builtin_getattr.py
blob: afa4ab3293ca62510a8bb1b971016501808b2d93 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
class A:

    var = 132

    def __init__(self):
        self.var2 = 34

    def meth(self, i):
        return 42 + i


a = A()
print(getattr(a, "var"))
print(getattr(a, "var2"))
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"))