Позвольте мне добавить две вещи:
isinstance(x,numbers.Integral)
также охватывает long
и
isinstance(x, int)
. Тест numbers.Integral
был бы ближе к
isinstance(x, (int, long))
в Python 2 (Python 3 убил long
для хорошего.)
Я предпочитаю тест с numbers.Integral
, потому что если вы выйдете из int
(или long
), isinstance(y, numbers.Integral)
по-прежнему будет True
.