A quest for html.unescape( " " )



这是我的代码:

import os
import html
a = html.unescape("home - study")
b = "test"
print(a)
s = (a, b)
print(s)

这是我的结果:

home - study
('homexa0-xa0study', 'test')

为什么结果会这样打印?

默认情况下,打印容器(如 tupleslists 等(将使用其项目的repr(在CPython中,它被选择不实现<container>.__str__而是让object.__str__填补其插槽。然后,object__str__将调用tuple.__repr__然后继续调用它包含的元素的repr。有关详细信息,请参阅 PEP 3140。

为带有转义码(如 xa0(的字符串调用 repr 实际上不会转义它们:

print(repr(a))
'homexa0-xa0study'

要进一步验证,请尝试print(s[0]) 。通过直接在位置0提供str对象,python将调用__str__并正确转义十六进制。

最新更新