Я создаю приложение с философией «непременно (если не обязательно)». Нефатальные ошибки будут собраны и представлены конечным пользователям в качестве предупреждений в отчете. Класс подклассов Предупреждения кажется хорошей идея, но есть один очень странное препятствие: я могу только выдавать предупреждения с помощью следующей библиотеки метода:Предупреждение о подклассе
warnings.warn(message, category=None, stacklevel=1)`
Так скажем, одно из предупреждений мне нужно войти в около 99 орфографические ошибки в текстовом документе, вместе с номером строки, где произошли каждая опечатка:
class UserCannotSpell(UserWarning):
def __init__(self, misspelled_document):
super().__init__()
self.document = misspelled_document
self.misspellings = []
def add(self, misspelling):
self.misspellings.append(misspelling)
... документ был обработан и UserCannotSpell()
объект готов. Единственная проблема: я не могу raise
и не могу warnings.warn()
. Какие-либо предложения?
Когда я использую свой класс, я могу действительно использовать 'warnings.warn' на примере его , Предупреждение отсутствует «содержание», но это потому, что вы не определяете '__str__'. Что происходит, когда вы пытаетесь использовать «предупреждения, предупреждения» на своем объекте? – BrenBarn
@BrenBarn Я не могу передать объект warnions.warn() - только строка и тип предупреждения. В этом и заключается проблема – Muposat
Пожалуйста, покажите фактический код, который вы используете с 'warnings.warn'. Как [documented] (https://docs.python.org/3/library/warnings.html#warnings.warn) вы можете передать экземпляр предупреждения (включая экземпляр подкласса Warning). – BrenBarn