Я пытаюсь быть очень строгим с набором текста и сталкиваюсь с проблемой, когда хочу набрать Callable только с несколькими очень специфическими методами!
У меня есть класс:
class Complex:
def __add__(self, other):
return Complex()
def __sub__(self, other):
return Complex()
def __div__(self, other):
return Complex()
В другом файле я хочу написать метод, который принимает Callable, но аргументом метода может быть ТОЛЬКО функция add или функция sub .Это означает, что я хочу, чтобы линтер выдавал ошибку, если я пытаюсь передать div в качестве функции test_add_sub ()
Код, показанный ниже, не работает :(компилятор жалуется, когда я передаю функцию div в test_add_sub! Также я не могу написать Complex.complex_func ().
add_sub_type = Complex.__add__ or Complex.__sub__
add_sub_type2 = Callable[[Complex.__add__ or Complex.__sub__], None]
def test_add_sub(complex_func: add_sub_type) -> None:
print(complex_func)
Complex.complex_func() <-- 'Class Complex has no complex_func member'
Большое спасибо всем заранее.