Функция geterrcall
Функция geterrcall возвращает текущую
функцию обратного вызова, которая вызывается
при возникновении ошибок в вычислениях NumPy.
Функция не принимает параметров и возвращает
объект вызываемой функции или None,
если функция не установлена. Эта функция
используется совместно с seterrcall
для настройки обработки ошибок.
Синтаксис
np.geterrcall()
Пример
Получим текущую функцию обработки ошибок:
import numpy as np
call = np.geterrcall()
print(call)
Результат выполнения кода:
None
Пример
Установим и получим функцию обработки ошибок:
import numpy as np
def error_handler(err, flag):
print("Error occurred:", err)
np.seterrcall(error_handler)
call = np.geterrcall()
print(call)
Результат выполнения кода:
<function error_handler at 0x...>
Пример
Проверим, установлена ли функция обратного вызова:
import numpy as np
if np.geterrcall() is not None:
print("Error handler is set")
else:
print("No error handler set")
np.seterrcall(None)
if np.geterrcall() is None:
print("Error handler was cleared")
Результат выполнения кода:
"No error handler set"
"Error handler was cleared"
Пример
Используем функцию для обработки ошибок при делении на ноль:
import numpy as np
def custom_error_handler(err, flag):
print(f"Warning: {err}")
np.seterrcall(custom_error_handler)
np.seterr(divide='call', invalid='call')
arr = np.array([1, 2, 0])
res = np.divide(1, arr)
print(res)
Результат выполнения кода:
"Warning: divide by zero encountered in divide"
[1. 0.5 inf]
Пример
Сбросим настройки ошибок после использования:
import numpy as np
def handler(err, flag):
pass
np.seterrcall(handler)
np.seterr(divide='ignore')
call = np.geterrcall()
print("Handler:", call)
np.seterrcall(None)
call = np.geterrcall()
print("After reset:", call)
Результат выполнения кода:
"Handler: <function handler at 0x...>"
"After reset: None"
Смотрите также
-
функцию
seterrcall,
которая устанавливает функцию обработки ошибок -
функцию
seterr,
которая устанавливает режим обработки ошибок -
функцию
geterr,
которая возвращает текущий режим обработки ошибок -
функцию
nan_to_num,
которая заменяет NaN и бесконечности