Я пытаюсь поднять DeprecationWarning
с помощью фрагмента кода на примере, показанном в документах. http://docs.python.org/2/library/warnings.html#warnings.warnКак мне получить предупреждение.warn, чтобы выпустить предупреждение и не игнорировать строку?
Официальный
def deprecation(message):
warnings.warn(message, DeprecationWarning, stacklevel=2)
Mine
import warnings
warnings.warn("This is a warnings.", DeprecationWarning, stacklevel=2) is None # returns True
Я попытался удалить stacklevel аргумент, установив его на отрицательный, 0, 2 и 20000. Предупреждение всегда молча проглотил. Он не выдает предупреждение или не создает исключение. Он просто игнорирует строку и возвращает None
. В документах не упоминаются критерии игнорирования. Предоставление сообщения, делает предупреждения. Правильно выдает предупреждение. Userwarning.
Что может быть причиной этого и как я могу получить предупреждение для предупреждения?
Я вижу. Я не уверен, что согласен с этим решением изменить его от громкого до не-громкого в 2.7. По умолчанию пользователям следует сообщать, когда ситуация меняется, поэтому они не пойманы полностью не осознавая. Благодарю. – Damgaard
@ Damgaard: пользователям все равно, пока это работает. Это предупреждение для разработчиков, которые в любом случае должны тестироваться с помощью '-W all' или' -W once'. – naught101