#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.