Maybe it would be better just to have a classes_ property that explicitly gets the classes_ from the last step?   Like this (untested):

@property
def classes_(self):
    return self.steps[-1][1].classes_