70 | | for (k, v) in resultclass.__dict__.items(): |
71 | | # All __promise__ return the same wrapper method, but they |
72 | | # also do setup, inserting the method into the dispatch |
73 | | # dict. |
74 | | meth = cls.__promise__(resultclass, k, v) |
75 | | if hasattr(cls, k): |
76 | | continue |
77 | | setattr(cls, k, meth) |
| 70 | for type_ in reversed(resultclass.mro()): |
| 71 | for (k, v) in type_.__dict__.items(): |
| 72 | # All __promise__ return the same wrapper method, but they |
| 73 | # also do setup, inserting the method into the dispatch |
| 74 | # dict. |
| 75 | meth = cls.__promise__(resultclass, k, v) |
| 76 | if hasattr(cls, k): |
| 77 | continue |
| 78 | setattr(cls, k, meth) |