这是我的代码:
import os
import html
a = html.unescape("home - study")
b = "test"
print(a)
s = (a, b)
print(s)
这是我的结果:
home - study
('home\xa0-\xa0study', 'test')
为什么结果会这样打印?
答案 0 :(得分:2)
默认情况下,打印tuples
,lists
和其他等容器将使用其项目的repr
。
(在CPython中,选择不实现<container>.__str__
而是让object.__str__
填充其广告位。__str__
的{{1}}将调用object
然后调用the repr
of the elements it contains。有关详情,请参阅PEP 3140。)
在tuple.__repr__
中调用带有转义码的字符串(例如repr
)实际上不会逃避它们:
\xa0
要进一步验证,请尝试print(repr(a))
'home\xa0-\xa0study'
。通过直接在print(s[0])
位置提供str
对象,python将调用其 0
并正确转义十六进制。