#python #inheritance #type-hinting #mypy
#питон #наследование #тип-намек #майпи
Вопрос:
У меня есть модуль, который выглядит следующим образом:
from copy import deepcopy class TestClassA(): def test_function_a(self) -gt; "TestClassA": return self class TestClassB(TestClassA): @property def __copy__(self) -gt; "TestClassB": return deepcopy(self) def test_function_b(self) -gt; "TestClassB": b = self.__copy__ c = b.test_function_a() print(c) return c a = TestClassB() a.test_function_b()
когда я запускаю это, консоль распечатывается lt;__main__.TestClassB object at lt;locationgt;gt;
. Однако оценка этого с помощью mypy возвращает ошибку
Incompatible return value type (got "TestClassA", expected "TestClassB")
В подобных случаях, должен ли вывод test_function_a быть объединением[«TestClassA», «TestClassB»], или есть другой способ аннотирования этого модуля?