В основном я получил предупреждение ниже в PyCharm в заявлении math.isclose(a_val, b_val)
Expected type 'SupportsFloat', got 'Number' instead
Минимальный, воспроизводимый пример, как показано ниже.
from numbers import Number
import math
a_val = '123'
b_val = 123.4
if isinstance(a_val, Number) and isinstance(b_val, Number):
is_close = math.isclose(a_val, b_val, abs_tol=0.5)
В действительности, a_val
и b_val
получены где-то еще, что может вернуть число с плавающей запятой, целое число или строку. Если оба значения a_val
и b_val
являются числовыми, я хочу проверить, являются ли они почти равными. В противном случае просто игнорируйте его, если какой-либо из них является строкой.
Вопрос - как лучше всего проверять тип перед передачей a_val
и b_val
в math.isclose()
? Какие изменения нужно сделать, чтобы очистить PyCharm Wringing?