Ich verwende @cached aus Aiokache auf einer überschriebenen Async -Methode in einer Unterklasse. Die übergeordnete Klasse hat eine Methode mit einem bestimmten Rückgabetyp, und die Unterklasse überschreibt sie mit demselben Rückgabetyp. Aber nachdem ich die Unterklasse -Methode mit @cached dekoriert habe, erhalte ich einen Typfehler von Pylance: < /p>
"get_all" overrides method of same name in class "IBaseRepository" with incompatible type "_Wrapped[..., Unknown, ..., CoroutineType[Any, Any, Unknown]]"
< /code>
Code Beispiel: < /p>
from aiocache import cached
# Base repository
class IBaseRepository(Generic[T]):
async def get_all(self) -> List[T]:
...
# Concrete repository
class CategoryRepositoryImpl(IBaseRepository[CategoryDomain]):
@cached(ttl=600, key_builder=classaware_key_builder)
async def get_all(self) -> List[CategoryDomain]:
return await super().get_all()
< /code>
Auch wenn ich die Caching-Logik vollständig außerhalb der Repository-Methode in eine Anwendungsfall- oder Serviceschichtfunktion bewege, unterbricht die Funktion der Funktion die Signatur der Funktion immer noch aus der Perspektive des Typs überprüft. beschwert sich, dass die Methodensignatur jetzt nicht kompatibel ist.>
@geförderte Dekorateurbrückungsmethode Signaturerbe in Unterklasse ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post