首页 > 解决方案 > python类内部逻辑

问题描述

1 - 我正在为 python 使用一些库,我很好奇它们是如何在内部工作的,例如:

from urllib.request import urlopen
print(type(urlopen)) # <class 'function'>

2 - 假设 Html 页面包含此文本:

This is line one
This is line two

返回第一行:

b'This is line one\n'

?? 我知道它是字节类型但是为什么我们有实际的单词而不是我希望我看到这样的东西:001001011010101010101010101010000101010 每个字符都翻译成它对应的 utf-8 代码的基本二进制文件。我不明白这里的前导 b 是什么语法?

3 - 如果我在这一行使用 decode().split() 我会在返回列表中丢失 '\n' :

[This, is, line, one]

为什么会这样?感谢您对新手开发者的大力支持。

标签: pythonruntime

解决方案


如果使用编码对 unicode 进行编码,则会得到字节码。(编码,因为它对“你的机器”是可读的)。

如果您使用编码解码字节码,您将获得 unicode。(因为你可能会读到它)

这意味着, b'...' 是字节格式(已经编码)。

编码的一个例子是UTF-8

如果您想要二进制数字(例如 0101010),请使用内置bin()函数。例如:

bin(42)

结果是:

'0b101010'

0b前缀,和之前不一样b'...'


推荐阅读