请考虑以下Python 3.x代码:
class FancyWriter:
def write(self, string):
print('<'+string+'>')
return len(string)+2
def testFancyWriter():
fw = FancyWriter()
print("Hello World!", file=fw)
print("How many new lines do you see here?", file=fw)
print("And here?", file=fw)
return
testFancyWriter()
输出如下所示:
^{pr2}$为什么这些空行在中间?在
好-创建FancyWriter类的真正目的是为Excel创建一个writer类: 我需要将带制表符的文本行写出到Excel单元格中,每行都在Excel行中,并且每个制表符分隔的子字符串都写入该行的单元格中。 奇怪的是,在那个ExcelWriter类中(它也有一个类似于上面的write()函数,只是对print()的调用被设置单元格值所代替),也出现了类似的现象——在上面的FancyWriter类的输出中有一些空白行! (如果传入字符串的最后一个字符是'\n',则目标单元格将移动到下面一行。)
有人能解释一下吗?从字面意义上讲,字里行间到底发生了什么?在
对于一个爱幻想的作家来说,什么才是“最棒的方式”(输出?文件?)使用write函数初始化以获得所需的输出,如下所示
<Hello World!>
<How many new lines do you see here?>
<And here?>
提前谢谢你!在
你的“空行”实际上是用一个字符串
'\n'
调用的函数,用来处理行尾。例如,如果我们将打印更改为并将
^{pr2}$hello world
行改为我们看到了
基本上,
print
不会构建一个字符串,然后将end
值添加到其中,它只是将end
传递给编写器本身。在如果你想避免这种情况,你必须避免}将传递{},即使它是空字符串。在
print
,我想,或者是一个特殊情况,你的编写器要处理接收某个参数的情况,因为看起来{相关问题 更多 >
编程相关推荐