当包含换行符时,如何在python中定义__str__?

时间:2013-04-24 00:06:32

标签: python string python-3.x newline

我正在尝试为迷宫对象定义 str ()并打印出类似这样的内容:

#######
#J..P.#
#.###.#
#..@#.#
#@#.@.#
#######

但是,当我构建要返回的字符串时,它最终会被打印为:

'#######\n#J..P.#\n#.###.#\n#..@#.#\n#@#.@.#\n#######\n'

我正在做的就是浏览列表列表(每行是一个列表,整个迷宫是这些行列表的列表)并在每行的末尾连接一个“\ n”。在返回之前我是否应该对结果字符串执行其他操作,以便在调用print()或str()时迷宫的字符串表示将返回第一个所需的表示形式?

2 个答案:

答案 0 :(得分:1)

您是使用print语句打印,还是只是让Python打印该值?例如:

>>> a = "This is a\nmultiline string"
>>> a
'This is a\nmultiline string'
>>> print a
This is a
multiline string

这只是正常的Pythonic行为。

答案 1 :(得分:0)

您是否尝试过使用原始字符串? (即用r""" """而不是" "' '包裹的字符串。

此外,您可以考虑使用os.linesep而不是硬编码\n来实现操作系统独立性。关于here的更多信息。