Ошибка была вызвана опечаткой. Пожалуйста, отметьте этот вопрос как не по теме.Почему print() печатает пустой кортеж вместо новой строки?
У меня возникла небольшая проблема со следующими строками.
from __future__ import print_function
print()
Если я открываю свой Windows CLI и запускаю его, он работает как ожидается.
Когда я вставить его в программу и выполнить ее, вместо того, чтобы просто печать новой строки, он печатает ()
.
ли кто-нибудь работать в этом раньше?
Дополнительные детали:
Если я запускаю программу с только этими двумя линиями, она работает, как ожидалось.
Но по какой-то причине в моей программе print()
отпечатки ()
. Если я заменю эту строку на print(1)
, она напечатает 1
, как и следовало ожидать.
Работает на Windows 8 64-бит. Python 2.7.11 (v2.7.11: 6d1b6a68f775)
Minimal, полный и проверяемый пример:
class A:
def f(self):
print()
if __name__ == '__main__':
a = A()
a.f()
Final Update:
Ой !!!! Я идиот.
У меня есть программа драйвера, которая имеет будущий импорт, но класс (который является другим файлом) не работает! У меня есть утверждения вроде print('abc', file=sys.stderr)
, но они не выполнялись, поэтому программа не запускала никаких проблем.
Мой пример выше фактически работает нормально. В примере, который я запускал, не было импорта. Файл, который я редактировал (в противном случае - точная копия примера).
Woops !!!!
Он просто печатает новую строку на моей консоли. Я не получаю пустой кортеж. Я на машине с Windows, если это имеет значение. – SvbZ3r0
Я не могу воспроизвести это на python 2.7, и я тоже на Windows. Кстати, вам не нужен конструктор этого класса, и это хорошая привычка к подклассу из 'object' (хотя это необязательно для этого конкретного класса) –
В Python 2.7.x' print() 'возвращает кортеж, но в python 3.5.x 'print()' возвращает новую строку. Вы проверили свои версии Python? –