При вызове метода в производном классе B относительно экземпляров производного класса нет абсолютно никакой разницы между объектом экземпляра A и объектом экземпляра B. Это один и тот же объект.
Таким образом, при рассмотрении методов экземпляра существует только один единственный объект. Концептуально возможно, если немного сложнее, как вы заметили, вызвать метод, определенный в родительском классе, но, конечно, с производным классом в качестве экземпляра self. Невозможно провести различие между объектом «A» и объектом «B», есть только один экземпляр, и они являются «одинаковыми» для A и B. Но для методов класса параллель с методом экземпляра отскок вы упомянутого просто не существует.
Теперь вы говорите о методах класса. Для методов класса, как вы знаете, self является классом. Экземпляры не имеют смысла. Вы не можете вызывать метод класса A. независимо от , не имея класса A или его метакласса self .
Другими словами, причина, по которой ваш упомянутый трюк работает, заключается в том, что существует только один объект, а для производного экземпляра он назван из производного класса. Невозможно сделать обратное без создания второго экземпляра недопустимого родительского класса. Но теперь, когда мы вызываем методы класса, они ... ну ... методы класса, поэтому нет никакой надежды на ссылку на производный класс. Как именно можно определить, что вы хотите?