5 weeks ago | Paul Boddie | raw annotate files changeset graph | Introduced an object size member to object structures, being set to a non-zero value in copiable type class structures to indicate that value replacement can occur with instances of such classes, with the given size being used to copy these instances. | value-replacement-generic |
1 class MixIn: 2 def f(self): 3 return self.g() 4 def f2(self): 5 return self.g2() 6 7 class Concrete(MixIn): 8 def g(self): 9 return 13579 10 def g2(self): 11 return 13579 12 13 class Cement(MixIn): 14 def g2(self): 15 return 24680 16 17 m = MixIn() 18 19 try: 20 print m.f() 21 except TypeError: 22 print "m.f: cannot obtain attribute" 23 24 c = Concrete() 25 print c.f() # 13579 26 27 try: 28 print m.f2() 29 except TypeError: 30 print "m.f2: cannot obtain attribute" 31 32 c2 = Cement() 33 print c2.f2() # 24680