У меня есть следующий фрагмент кода:
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] ";Ожидается "Необязательно [Callable [[A], Любой]]"
Где я предполагаю, что operator.gt
было явно аннотировано таким образом.
Мой вопрос, как можноЯ так комментирую, что также ясно, что lst
является List[A]
, и что mypy
не будет жаловаться на operator.gt
?