Подтвердить что ты не робот

Что означает этот код: "print >> sys.stderr"

print >> sys.stderr, "Error in atexit._run_exitfuncs:"

Зачем печатать ' → ' перед sys.stderr?

Спасибо.

4b9b3361

Ответ 1

Этот синтаксис означает запись в файл-объект (sys.stderr в этом случае) вместо стандартного вывода. [Ссылка]

В Python 3.0 print становится функцией вместо оператора: [Ссылка]

print("Error in atexit._run_exitfuncs:", file=sys.stderr)

Ответ 2

Из Документация по Python:

print также имеет расширенную форму, определяемый второй частью синтаксис, описанный выше. Эта форма иногда называемый "print шеврон". В этой форме первый выражение после → должно оценивать к "файлоподобному" объекту, в частности объект, который имеет метод write() как описано выше. С помощью этого расширенного формы, последующие выражения печатается в этот файл. Если первое выражение оценивается как None, то sys.stdout используется как файл для вывода.