Что> после команды print в Python 2?
import cStringIO
output = cStringIO.StringIO()
output.write('First line.n')
print >>output, 'Second line.'
# Retrieve file contents -- this will be
# 'First line.nSecond line.n'
contents = output.getvalue()
Что делает >>output
в операторе print
в строке 5?
1 ответ:
Он перенаправляет вывод инструкции
>>
должно вычисляться в "файлоподобный" объект, в частности объект, который имеет методwrite()
, как описано выше. С этой расширенной формой последующие выражения печатаются в этот файловый объект. Если первое выражение вычисляется какNone
, тоsys.stdout
используется в качестве файла для вывода.По существу, строка переводится в
output.write('Second line.' + '\n') as
print` добавляет новую строку к ее выходу, если выражение не заканчивается запятой.Синтаксис основан на синтаксисе bash append
>>
(который также повлиял на операторы ввода-вывода C++<<
и>>
); смотритеPEP 214 для полной мотивации, почему это было выбрано.В Python 3, где
print()
- функция, вы бы написали:print('Second line.', file=output)
Вместо этого.