У меня есть следующий фрагмент кода:
from typing import List
import operator
class A:
def __init__(self, x: int) -> None:
self.x = x
def __gt__(self, other: "A") -> int:
return 0 if self.x > other.x else -1
lst: List[A] = []
sorted(lst, key=operator.gt)
Теперь проблема в том, что mypy
будет жаловаться на:
Аргумент "ключ" к "отсортированному" имеет несовместимый тип "Callable[[Any, Any], Any]"; ожидается "Необязательный [Вызываемый [[A], Любой]]"
Где я предполагаю, что operator.gt
был явно так аннотирован.
Мой вопрос в том, как я могу аннотировать таким образом, чтобы также было ясно, что lst
является List[A]
, и что mypy
не будет жаловаться на operator.gt
?