Распечатайте только сообщение на предупреждениях

Я выдаю много предупреждений в блоке проверки допустимости, и я хотел бы подавить все в stdout кроме сообщения, которое предоставляется warnings.warn().

Т.е. теперь я вижу это:

./file.py:123: UserWarning: My looong warning message
some Python code

Я хотел бы видеть это:

My looong warning message

Редактирование 2: переопределение warnings.showwarning() выпущенный для работы:

def _warning(
    message,
    category = UserWarning,
    filename = '',
    lineno = -1):
    print(message)
...
warnings.showwarning = _warning
warnings.warn('foo')
34
задан codeforester 19 September 2018 в 19:40
поделиться

3 ответа

Monkeypatch warnings.showwarning () с вашей собственной пользовательской функцией.

16
ответ дан 27 November 2019 в 16:52
поделиться

В

всегда есть обезьяна:

import warnings

def custom_formatwarning(msg, *args, **kwargs):
    # ignore everything except the message
    return str(msg) + '\n'

warnings.formatwarning = custom_formatwarning
warnings.warn("achtung")
23
ответ дан 27 November 2019 в 16:52
поделиться

Сначала добавить

filterContext.HttpContext.Response.Clear();

и это в конце:

filterContext.HttpContext.Response.End();

Надеюсь, это поможет.

-121--2663128-

Я бы пошел с boost:: scoped _ ptr здесь:

class A: boost::noncopyable
{
    typedef boost::scoped_ptr<B> b_ptr;
    b_ptr pb_;

public:

    A() : pb_() {}

    void calledVeryOften( /*…*/ )
    {
        pb_.reset( new B( params )); // old instance deallocated
        // safely use *pb_ as reference to instance of B
    }
};

Нет необходимости в ручном деструкторе, A не копируется, как это должно быть в вашем оригинальном коде, не утечка памяти при копировании/назначении.

Я бы предложил переосмыслить дизайн, хотя если вам нужно очень часто перераспределять какой-то внутренний государственный объект. Ознакомьтесь с параметрами Flyweight и State узоров.

-121--2666428-

Используйте модуль регистрации вместо предупреждений .

10
ответ дан 27 November 2019 в 16:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: