Правильно аннотировать мою переменную в большом условном выражении на основе его специфического c типа - PullRequest
1 голос
/ 22 февраля 2020

У меня есть следующие классы:

@dataclass
class Node:
    def token(self) 
        ...

@dataclass
class Program(Node):
    statements: List[str]

@dataclass
class Statement(Node):
    left: Node

...

Их довольно много, но все они, так или иначе, наследуются от Node.

. мой код, который я пытаюсь

def run(node: Node):
    if type(node) == Program:
        x = node.statements
    elif type(node) == Statement:
        x = node.left

Pycharm жалуется на Unresolved attribute reference 'statements' for class 'Node'.

Как правильно подсказывать тип c node в каждом случае?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...