python - 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]
为什么会这样?感谢您对新手开发者的大力支持。
解决方案
如果使用编码对 unicode 进行编码,则会得到字节码。(编码,因为它对“你的机器”是可读的)。
如果您使用编码解码字节码,您将获得 unicode。(因为你可能会读到它)
这意味着, b'...' 是字节格式(已经编码)。
编码的一个例子是UTF-8
如果您想要二进制数字(例如 0101010),请使用内置bin()
函数。例如:
bin(42)
结果是:
'0b101010'
看0b
前缀,和之前不一样b'...'
推荐阅读
- python - 为什么我用 Pygame 制作的游戏会突然卡顿几秒?
- jquery - 如何在 Laravel 的 DataTable 列表页面中更新状态
- javascript - 如何使两个 div 内联反应
- python - 调用函数的用户输入总是以进程 0 结束
- go - 创建可执行文件后获取当前文件名
- batch-file - Robot Framework 测试用例命名约定和使用 bat 文件运行
- reactjs - 数据未在函数内部传递
- string - 如何在mongodb(3.4版本)中将毫秒转换为HH:MM:SS格式
- python-3.x - Python - 在有序列表中的两个元素之间创建一个新的子列表
- javascript - 使用 jquery 单击另一个按钮时禁用按钮