If you are manually calling “the parent” in your methods, you are probably doing it wrong, and your class will needlessly(?) be unusable in multiple inheritance.
SubFoo is not a subclass of Foo. It is an independent class that inherits directly from object, not from Foo. The only thing which is special about SubFoo is that it is accessible from Foo as an attribute.
I’m not entirely sure what you’re trying to do here, but it’s possible you’re trying to get access to the zero-arg form of super() from outside the class? If so, you can use this definition: super() is equivalent to super(__class__, self), where __class__ refers to the currently-being-defined class, and self is the object in question. So if you want to know the superclass from Foo, it’s super(Foo, obj), and if you want to know the superclass from SubFoo, that’s super(SubFoo, obj). Either way, what you get back is not a class, though, it’s a magic thing that lets you call methods by skipping the MRO up to and including the class in question, so it’ll start from the next class after that when looking for methods.
But if that isn’t what you’re after, describe what you’re trying to do.
Is this another Ideas post that should have been a Help post?