[u'String']
是列表的文本表示形式,在Python 2上包含Unicode字符串。
如果运行print(some_list)
,则相当于
print'[%s]' % ', '.join(map(repr, some_list))
创建类型为的Python对象的文本表示形式list
,repr()
即为每个项目调用函数。
请勿混淆Python对象及其文本表示形式 - repr('a') != 'a'
甚至文本表示形式的文本表示形式也有所不同:repr(repr('a')) != repr('a')
。
repr(obj)
返回一个字符串,其中包含对象的可打印表示形式。它的目的是在REPL中明确表示对象,这对于调试很有用。经常eval(repr(obj)) == obj
。
为避免调用repr()
,您可以直接打印列表项(如果它们都是Unicode字符串),例如:print ",".join(some_list)
—它以逗号分隔的形式列出字符串列表:String
不要使用硬编码字符编码将Unicode字符串编码为字节,而是直接打印Unicode。否则,代码可能会失败,因为编码无法代表所有字符,例如,如果您尝试对'ascii'
非ASCII字符使用编码。或者,如果环境使用的编码与硬编码的编码不兼容,则代码会默默地产生mojibake(在管道中进一步传递损坏的数据)。