Для произвольного объекта python, как лучше определить, является ли он числом? Здесь is
определяется как acts like a number in certain circumstances
.
Например, скажем, вы пишете векторный класс. Если задан другой вектор, вы хотите найти скалярное произведение. Если дан скаляр, вы хотите масштабировать весь вектор.
Проверка, является ли что-то int
, float
, long
, bool
раздражает и не охватывает определенные пользователем объекты, которые могут действовать как числа. Но проверка на __mul__
, например, недостаточно хороша, потому что класс векторов, который я только что описал, определил бы __mul__
, но это не тот тип числа, который я хочу.