Как я могу быстро проверить, что параметры метода имеют правильный тип?
Самый быстрый способ - ничего не делать.
Серьезно.Интерпретатор динамического языка (в данном случае Python) будет проверять намного быстрее, чем любой код, который вы когда-либо могли написать.Это просто вызовет исключение, и это все, что вам нужно сделать.Ничего.
Должен ли я это сделать?
Никогда не проверяйте для правильного типа.В общем, вы не можете этого сделать.
Допустим, у вас есть функция, для которой требуется "число"
def some_func( x ):
assert isinstance(x, int)
Плохая политика.Ваша функция может работать долго или с плавающей точкой так же хорошо, как int.
assert instance( x, (int, long, float) )
Плохая политика.Вы все еще исключили комплекс.Действительно, вы также исключили decimal.Decimal
и fractions.Rational
, которые также являются действительными числами.
Путем «проверки типов» вы исключите допустимые типы.Единственное, что вы можете сделать, это предположить, что типы являются правильными, и изящно обработать исключение, когда кто-то «неправильно» использует вашу функцию или класс и предоставляет неправильные типы.
Ничего не делать.Программа должна полностью вылететь.