Вы чего-то странного желаете. По крайней мере в вашем упрощенном примере наследование вообще не нужно. Ну, будет вместо одной строки, где вы определяете type_, две - на определение метода method? В конце концов, можно декоратор определить для класса. Ну и возврат типа - похоже на какое-то извращение.
P.S. Почитайте про паттерны проектирования. Где-то на гитхабе я даже для питона видел проект с примерами реализации.
P.P.S. Если уж очень надо, то так (Python 3.7 или 3.8):
from __future__ import annotations
from typing import TypeVar
_TA = TypeVar('_TA', bound='A')
class A:
type_ = None
def method(self: _TA) -> _TA.type_:
return self.type_
class B(A):
type_ = int
class C(A):
type_ = str
if __name__ == '__main__':
print(B().method())
print(C().method())
И я бы еще базовый класс сделал абстрактным, но это уж сами.