Интересно, что мне делать, если я хочу, чтобы в среде IDE автоматически указывался дочерний метод? Приведенный ниже код не работает в Pycharm 2019.2
. Я могу добавить только подсказку типа в родительском классе, но «конечный тип» должен определяться динамически в дочернем классе
from typing import TypeVar, List
T = TypeVar("T")
class Node:
def __init__(self: T, neighbours: List[T]):
self.neighbours = neighbours # The "final type" should be determined dynamically
def get_neighbours(self) -> List[T]:
return self.neighbours
class ChildNodeA(Node):
def child_method_a(self):
pass
class ChildNodeB(Node):
def child_method_b(self):
pass
class ChildNodeC(Node):
def child_method_c(self):
pass
child_node = ChildNodeA([])
for node in child_node.neighbours:
node.child_method_a() # I want the pycharm to auto-hint child_method_a
child_node = ChildNodeB([])
for node in child_node.neighbours:
node.child_method_b() # I want the pycharm to auto-hint child_method_b