#python #warnings
#python #предупреждения
Вопрос:
Этот код выдает четыре практически идентичных предупреждения:
import warnings
warnings.warn("1") # warning at this line 3
warnings.warn("2",
stacklevel=1) # warning at this line 5
warnings.warn("3", # warning at this line 7
)
warnings.warn(
"4",) # warning at this line 10
warnings.warn(
"5", # warning at this line 13
)
Что я заметил, так это то, что указанное местоположение немного отличается:
c:Srcbug.py:3: UserWarning: 1
warnings.warn("1") # warning at this line 3
c:Srcbug.py:5: UserWarning: 2
stacklevel=1) # warning at this line 5
c:Srcbug.py:7: UserWarning: 3
warnings.warn("3", # warning at this line 7
c:Srcbug.py:10: UserWarning: 4
"4",) # warning at this line 10
c:Srcbug.py:13: UserWarning: 5
"5", # warning at this line 13
В частности, предупреждения 2
и 4
указывают на конечную строку команды, в то время как предупреждения 3
и 5
этого не делают (в основном, конечная строка )
игнорируется). Предназначено ли это? В идеале я бы предпочел, чтобы на консоли отображалась полная команда, а не только одна ее строка.
Комментарии:
1. Маркер будет установлен на последнюю инструкцию вызова.
2. @KlausD. звучит как ответ. Это где-нибудь задокументировано?