2021-10-31 | Paul Boddie | raw annotate files changeset graph | Introduced a dedicated integer type based on ssize_t. This allows integers to be used for sizes and lengths in native and low-level operations whilst also supporting their storage in the same amount of space as a pointer, thus avoiding the inflation of attributes that might occur if a larger type were chosen. |
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