使用Cherrypy时,我遇到了这个评论行。 “字符串被包装在列表中,因为迭代单个项目列表比迭代长字符串中的每个字符要快得多。” 它位于 https://github.com/cherrypy/cherrypy/blob/master/cherrypy/lib/encoding.py#L223 我已经在网上做过一些研究,但我仍然不完全理解将response.body包装为[response.body]的原因。 ?谁能告诉我这个设计背后的细节?
答案 0 :(得分:2)
我认为只有在使用该注释的代码之前识别出self.body
可以是单个字符串,或者包含许多字符串的可迭代序列时,代码才有意义。其他代码将使用它作为后者(迭代它并使用项目进行字符串填充)。
虽然技术上可以让稍后的代码循环遍历单个字符串的字符,但逐个字符处理数据可能效率低下。因此,注释下面的代码会在单个字符串周围包含一个列表,让它一次处理完毕。