打印语法错误,python 2.7.6

时间:2014-05-08 07:22:16

标签: python python-2.7

写了一些代码,这个语法错误一直在发生,但我无法解决。由于想要只在打开详细选项时打印,我已经包含了与错误行相关的所有代码。

from __future__ import print_function
print = print_function
parser.add_argument("-v", "--verbose", action="store_true",help="Help option"
verboseprint = print  if verbose else lambda *a, **k: None 

                if line2_rev:
                    verboseprint "Line2 has now been reversed"

    verboseprint " Line2 has now been reversed"
                                              ^
SyntaxError: invalid syntax

我尝试使用''以及更改内部字符串但发生了同样的错误。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

当您运行from __future__ import print_function时,print()功能,而不是语句。您也不能将verboseprint用作语句。

将其用作函数:

from __future__ import print_function

parser.add_argument("-v", "--verbose", action="store_true",help="Help option"
verboseprint = print  if verbose else lambda *a, **k: None 

if line2_rev:
    verboseprint("Line2 has now been reversed")

__future__导入改变了编译器的工作方式;从此特定模块的语言中删除print关键字,而Python 2中已存在的内置print() 函数可用。所以而不是:

print "This is printed"

您使用:

print("This is printed")

但是在您的代码中,您定义了一个新功能,该功能将起作用。

您不需要在代码中指定print = print_function

答案 1 :(得分:0)

执行import print_function时,不使用名为print_function的内容,但更改为使用Python3语法而不是print关键字语法。

在Python2中传统上你会说:

print 'something', 'other',

你说import from __future__ import print_function

print('Something', 'other', end='')