Lichen

tests/methods_changing.py

360:209dc7a270fd
2016-12-09 Paul Boddie Added support for dynamic attribute access using getattr and hasattr, employing a special attribute on strings to hold the object table code and position for any attribute having the same name as the represented string.
     1 class C:     2     def f(self):     3         return 1     4      5     def g(self):     6         return self.f()     7      8 class D(C):     9     pass    10     11 def f():    12     return 2    13     14 c = C()    15 d = D()    16     17 # Invoke a method that calls the default version of f.    18     19 print c.g()                 # 1    20 print d.g()                 # 1    21     22 # Replace f in C and invoke the method again. For C, f will have changed,    23 # but for D, f will retain its original value.    24     25 C.f = f    26     27 print c.g()                 # 2    28 print d.g()                 # 1