То, что у вас есть, выглядит правильно, за исключением того, что большинство программистов смотрят на метод B.Run и думают: «О, он забыл назвать супер. Позвольте мне просто добавить это ...», но я уверен, что выобъясните, что вы делаете в своей реальной реализации:)
Если вы беспокоитесь о чем-то вроде нарезки в C ++, то будьте уверены.То, что у вас есть, хорошо.
Что касается того, как сделать это "проще", я не уверен, как вы могли бы упростить его, кроме удаления пустой функции __init__
А и удаления pass
из __init__
Б.