сообщение об ошибке, касающееся устаревания

#python #error-handling #deprecated

#python #обработка ошибок #устаревший

Вопрос:

Я запустил некоторый код на python и получил это сообщение об ошибке:

C:Python26libsets.py:85 : Предупреждение об устаревании: функции, переопределяющие предупреждения.showwarning () должен поддерживать аргумент ‘line’ stacklevel = 2)

Я не уверен, что это какое-то предупреждение, которое я могу просто игнорировать, или это серьезно? Любой ввод будет оценен. Спасибо

Комментарии:

1. Почему это помечено mysql ? Не могли бы вы показать нам код, который выдает предупреждение?

Ответ №1:

Не беспокойтесь. Предупреждение касается чего-то в стандартной библиотеке, что уже было исправлено в Python 2.7. Вы можете смело игнорировать его 🙂

The sets.py является частью стандартной библиотеки. Строка 85 — это просто предупреждение о том, что модуль sets устарел в пользу встроенного метода set(), но он не исчезнет до Python3.0.

Ответ №2:

Это станет серьезным. Подробности см. в разделе PEP 4. Но DeprecationWarning s сообщает вам, что некоторые функции будут изменены в следующей версии Python.

Комментарии:

1. Будет ли это проблемой, если я просто использую python 2.0 вместо текущей версии?

2. Это может быть хорошим советом для предупреждений в целом, но основные разработчики заботятся о коде в стандартной библиотеке, который генерирует предупреждения. Кроме того, рассматриваемое устаревание не выполняется до серии 3.x. Таким образом, OP может продолжать безопасно использовать sets.py в Py2.x, если он / она того пожелает. При этом код, вероятно, будет выполняться быстрее, если OP перейдет на использование встроенного set() вместо sets.py , но это не является обязательным в Py2.x.