写了一些代码,这个语法错误一直在发生,但我无法解决。由于想要只在打开详细选项时打印,我已经包含了与错误行相关的所有代码。
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
我尝试使用''以及更改内部字符串但发生了同样的错误。有什么想法吗?
答案 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='')