Так что удаление Type [A] имеет смысл здесь.Я неправильно понял нотацию и подумал, что подсказка Type [A] означает любой объект типа, который наследуется от A, а это не так.Вместо этого это означает сам тип класса А.
Спасибо за ответы.Проблемы в проекте, которые заставили меня написать этот пример, должны быть чем-то другим.
from typing import List, Type
class A:
def __init__(self):
pass
class B(A):
def __init__(self, parent:A):
super().__init__()
self.parent = parent
class C(A):
def __init__(self, parent:A):
super().__init__()
self.parent = parent
o_a: A = A()
o_b: B = B(parent=o_a)
o_c: C = C(parent=o_b)
things: List[A] = []
things.append(o_a)
things.append(o_b)
things.append(o_c)