Python печати перегрузки

В вашем addTodohandler вы используете this.state.data.push в React, это не будет обновлять состояние

addTodo(val) {
    // Assemble data
    const todo = {text: val, id: window.id++};
    axios.post(this.apiUrl, todo).then(res => {
      const newData = {...this.state.data, res.data}
      this.setState({data: newData });
    });
45
задан slybloty 10 November 2017 в 20:39
поделиться

5 ответов

Перегрузка print является конструктивной особенностью python 3.0 для обращения к отсутствию способности сделать так в Python 2.x.

Однако можно переопределить sys.stdout. ( пример .) Просто присваивают его другому подобному файлу объекту, который делает то, что Вы хотите.

, С другой стороны, Вы могли просто передать свой сценарий по каналу через команда unix tee. python yourscript.py | tee output.txt распечатает и к stdout и к output.txt, но это получит весь вывод.

32
ответ дан ʞɔıu 26 November 2019 в 20:58
поделиться

Хотя Вы не можете заменить print ключевое слово (в Python 2.x print, ключевое слово), это - обычная практика для замены sys.stdout, чтобы сделать что-то подобное print переопределение; например, с экземпляром StringIO.StringIO. Это соберет все печатные данные в StringIO экземпляр, после которого можно управлять им.

3
ответ дан cdleary 26 November 2019 в 20:58
поделиться

В Python 2.x Вы не можете, потому что печать не является функцией, это - оператор. В Python 3 печать является функцией, таким образом, я предполагаю, что это могло быть переопределено (не попробовали его, хотя).

3
ответ дан Joonas Pulakka 26 November 2019 в 20:58
поделиться

Я столкнулся с той же проблемой.

Как насчет этого:

class writer :
    def __init__(self, *writers) :
        self.writers = writers

    def write(self, text) :
        for w in self.writers :
            w.write(text)

import sys

saved = sys.stdout
fout = file('out.log', 'w')
sys.stdout = writer(sys.stdout, fout)
print "There you go."
sys.stdout = saved
fout.close()

Это работало как очарование на меня. Это было взято из http://mail.python.org/pipermail/python-list/2003-February/188788.html

10
ответ дан 26 November 2019 в 20:58
поделиться

Я ответил на тот же вопрос на другой вопрос SO

По сути, самое простое решение - просто перенаправить вывод на stderr, как показано ниже, в файле конфигурации wsgi.

sys.stdout = sys.stderr
1
ответ дан 26 November 2019 в 20:58
поделиться
Другие вопросы по тегам:

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