该错误是由拼写错误引起的。请将此问题标记为偏离主题。
我对以下几行有点疑问。
from __future__ import print_function
print()
如果我打开Windows CLI并运行它,它将按预期运行。
当我将它粘贴在程序中并执行它时,它不是简单地打印换行符,而是打印()
。
以前有人遇到过这个吗?
其他详细信息:
如果我只使用这两行运行程序,它会按预期运行。
但出于某种原因,在我的计划中print()
打印()
。如果我用print(1)
替换该行,则会按原样打印1
。
在Windows 8 64位上运行。 Python 2.7.11(v2.7.11:6d1b6a68f775)
最小,完整且可验证的示例:
class A:
def f(self):
print()
if __name__ == '__main__':
a = A()
a.f()
最终更新:
哦,我的!!!!我是个白痴。
我有一个未来导入的驱动程序,但是类(这是另一个文件)没有!我确实有像print('abc', file=sys.stderr)
这样的语句,但它们没有被执行,所以程序运行没有问题。
我上面的例子实际运行正常。我运行的示例没有导入。我正在编辑的文件(否则是该示例的精确副本)。
Woops !!!!
答案 0 :(得分:4)
print
是python2中的一个特殊语句。
当你这样做时:
from __future__ import print_function
print()
您实际上正在调用print function,它与python3中的行为相同。
在你的程序中,你调用语句,而不是函数。因此,print()
打印一个空元组(确实是()
)。
附加说明:
如果我在示例的开头添加from __future__ import print_function
,我会按预期获得换行符,而不是空元组。
答案 1 :(得分:1)
在您的第二个计划python myprog.py
中,您需要添加from __future__ import print_function
行。