Есть ли синтаксис для добавления и понимания python List обобщений абстрактных типов? - PullRequest
2 голосов
/ 14 июля 2020

Я борюсь со списками абстрактных классов и PEP 484. Я понимаю, почему при некоторых обстоятельствах нельзя разрешать апкасты, но в следующем сценарии я считаю это глупым и громоздким: * 1001 :

c : List[SuperClass] = [ SubClass(0) ] + [ SubClass(i) for i in range(10)]

Но допускает это

a : List[SuperClass] = [ SubClass(0) ]
b : List[SuperClass] = [ SubClass(i) for i in range(10)]
c : List[SuperClass] = a + b

Это похоже на ошибку вывода типа и добавляет много беспорядка в код, особенно при использовании этой очень распространенной идиомы работы со списками подклассов различных типов.

Есть ли более чистый синтаксис для этого или способ дать подсказки системе типов?

...