我有这个Python代码:
file2.write(link) + '\n' + '\n' + '\n'
为什么它不起作用,但以下是:
file2.write((link) + '\n' + '\n' + '\n')
答案 0 :(得分:6)
前者调用函数然后向结果添加字符串,这可能是无效的,当然也是错误的。后者将字符串添加到一起并调用函数,传递添加的结果。
答案 1 :(得分:1)
write函数的括号应该包含要写入文件的所有内容。在第一个例子中,你写(链接),然后在完成之后给出一堆毫无意义的新行字符。
在第二个示例中,您编写(链接+换行符),写函数的右括号仅在结尾处。因此有效。 (虽然写((链接))有点矫枉过正)
总结:使用源代码编辑器为您突出显示匹配的括号。它使这些错误更容易被发现。
答案 2 :(得分:0)
file2.write(link) + '\n' + '\n' + '\n'
您正在将link
变量的内容写入文件file2
。如果成功,则此调用返回None,并且您将字符串'\n'
连接到此结果。最后,只有link
变量的内容位于文件file2
中。
file2.write((link) + '\n' + '\n' + '\n')
首先将link
变量的内容与字符串'\n'
连接起来,使用括号将优先级设置为字符串连接。然后将所有这些内容写入文件file2
。
答案 3 :(得分:0)
当您致电file2.write()
时,write()
是对象file2
上的一项功能。 link
是函数的一个参数,它是一个字符串。写+ '\n' + '\n' + '\n'
时表达式求值为字符串"\n\n\n"
。如果要编写link
和该字符串,则必须将它们作为一个字符串参数传递给函数write()
。这是由file2.write((link) + '\n' + '\n' + '\n')
完成的。否则,您只是调用该函数并尝试将字符串连接到函数调用的返回值。