Lichen

tests/methods_changing.py

336:8c75cdf1a764
2016-12-06 Paul Boddie Introduced stream classes employing C-level FILE pointers, changing the sys stdin, stdout and stderr objects to be instances of these stream classes. Added fread and fwrite support to the native functions. Added support for raising EOFError.
     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