Lichen

tests/methods_changing.py

303:c07a749f5bd0
2016-12-02 Paul Boddie Use __data__ attributes with native functions apart from when __data__ needs replacing (such as in the list append and concatenation functions).
     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