bytes
是 0
如何bytes.__repr__
work?
Why is \x
有时使用转义,有时不使用?例如bytes([118, 255])
显示为b'v\xff'
只有一个\x
。我明白那个\x
用于传达超出 ASCII 范围的值?这里还有其他事情发生吗?
我正在寻找其工作原理的深入解释?甚至可能会向我指出这些功能的 CPython 源代码。
Thanks
感兴趣的代码似乎是this:
if (c == quote || c == '\\')
*p++ = '\\', *p++ = c;
else if (c == '\t')
*p++ = '\\', *p++ = 't';
else if (c == '\n')
*p++ = '\\', *p++ = 'n';
else if (c == '\r')
*p++ = '\\', *p++ = 'r';
else if (c < ' ' || c >= 0x7f) {
*p++ = '\\';
*p++ = 'x';
*p++ = Py_hexdigits[(c & 0xf0) >> 4];
*p++ = Py_hexdigits[c & 0xf];
}
else
*p++ = c;
If c < ' ' || c >= 0x7f
,转义序列\x
用来。 (0x7f
顺便说一句,是 127)。之前的一切' '
在 ASCII 表中是一个特殊字符。看http://www.asciitable.com/。第一列上的所有内容都会被转义repr
。请注意,反斜杠、引号、换行符、回车符和制表符被视为特殊情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)