В Python 2.6 возможно отключить предупреждения от модуля предупреждений при помощи
with warnings.catch_warnings():
warnings.simplefilter("ignore")
fxn()
Версии Python прежде 2.6 не поддерживают with
однако, таким образом, я задаюсь вопросом, если бы там альтернативы вышеупомянутому, которое работало бы с пред2.6 версиями?
Это похоже на:
# Save the existing list of warning filters before we modify it using simplefilter().
# Note: the '[:]' causes a copy of the list to be created. Without it, original_filter
# would alias the one and only 'real' list and then we'd have nothing to restore.
original_filters = warnings.filters[:]
# Ignore warnings.
warnings.simplefilter("ignore")
try:
# Execute the code that presumably causes the warnings.
fxn()
finally:
# Restore the list of warning filters.
warnings.filters = original_filters
Редактировать: Без Попробуйте / Наконец
, исходные сигнальные фильтры не будут восстановлены, если FXN () бросил исключение. См. PEP 343 Для получения дополнительной дискуссии о том, как с оператором
служит для замены , попробуйте / Наконец
при использовании таких.
В зависимости от того, какую минимальную версию вам необходимо поддержать с использованием Python 2.5
from __future__ import with_statement
from __future__ import with_statement
, может быть вариант, иначе вам, вероятно, потребуется отступить к тому, что предложил Джон.