micropython

tests/subclass.py

525:deb3720de7d1
2012-06-05 Paul Boddie Introduced more rigid selection of suitable types depending on whether all attributes given as being used can be found in one or more types, or whether the selection of less satisfactory types (supporting any of the attributes) is necessary.
     1 #!/usr/bin/env python     2      3 class A:     4     def __init__(self, x):     5         self.x = x     6      7     def a(self):     8         return self.x     9     10 class B(A):    11     def b(self):    12         return 2    13     14 class C(A, B):    15     def a(self):    16         return self.y    17     18     def b(self):    19         return self.a()    20     21     def c(self):    22         return A.a(self)    23     24     def __init__(self, x, y):    25         self.x = x    26         self.y = y    27     28 class D:    29     def __init__(self, y):    30         self.z = y    31     32     def a(self):    33         return self.z    34     35 class E(C, D):    36     pass    37     38 class F(A, D):    39     pass    40     41 a = A(1)    42 b = B(1)    43 c = C(1, 2)    44 d = D(3)    45 e = E(3, 4)    46 f = F(5)    47     48 result1_1 = a.a()    49 result1_2 = b.b()    50 result2_2 = c.a()    51 result3_2 = c.b()    52 result2_1 = c.c()    53 result_3 = d.a()    54 result_4 = e.a()    55 result_5 = f.a()    56     57 # vim: tabstop=4 expandtab shiftwidth=4