[英]Python encode() and decode() string methods
学习 Python,对它的文档越来越感到沮丧。
对于以下脚本:
utf_string = "文言"
raw_bytes = b'\xe6\x96\x87\xe8\xa8\x80'
print(raw_bytes.decode())
print(utf_string.encode())
print(raw_bytes == utf_string.encode())
print(utf_string == raw_bytes.decode())
1) 这些 encode() 和 decode() 方法的文档在哪里?
2)我已经使用 print(type(utf_string)) 测试了变量的数据类型,并意识到我正在使用字符串和字节。
3)我如何找出这些方法属于哪个类? 我试过在 Google 上搜索“Python 3 字符串方法”和“Python 解码方法”,但没有任何乐趣。
我需要知道一种方法,以便我可以找出该方法所属的类,然后轻松找到相关文档。 否则我真的不知道如何使用该方法。
您的变量raw_bytes
不是字符串,它的类型是bytes
。 这就是b
前缀的意思。 decode
是bytes
对象的一种方法,默认编码是 UTF-8,但您可以指定其他编码。
您的变量utf_string
是一个字符串。 encode
是一种字符串方法。 默认编码为 UTF-8,但您可以指定其他编码。
正如您所发现的,这两种方法一起启用bytes
之间的来回转换,它像字符串一样不可变,但是是小整数和字符串的序列,字符串表示 Unicode 代码点。 这两种方法都记录在 Python标准库文档中。
Python 标准库通常具有示例性文档,当您遇到此类问题时,该文档应该是您的首选。
可以在此处找到两者的文档。 搜索“bytes.decode”和“str.encode”。
显然从(1)。
您可以在 python shell 中使用help(<type>)
,例如help(str)
来查看可用于相应对象类型的方法(和其他东西)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.