学习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解码方法”,但并不高兴。
我需要知道一个方法,这样我才能找出该方法所属的类,然后轻松找到此文档。否则我真的不知道如何使用该方法。
答案 0 :(得分:0)
您的变量raw_bytes
不是字符串,其类型为bytes
。这就是b
前缀的含义。 decode
是bytes
对象的方法,默认编码为UTF-8,但您可以指定其他编码。
您的变量utf_string
是一个字符串。 encode
是一个字符串方法。默认编码为UTF-8,但您可以指定其他编码。
您已经发现,这两种方法共同使bytes
之间可以前后转换,{{1}}像字符串一样是不变的,但是由小整数组成的序列和代表Unicode代码点的字符串组成。两种方法都在Python standard library docs中进行了介绍。
Python标准库通常具有示例性文档,当您遇到这样的问题时,该文档应该是您的第一站电话。
答案 1 :(得分:0)
两者的文档都可以找到here。搜索“ bytes.decode”和“ str.encode”。
来自(1)的父母。
您可以使用help(<type>)
,例如help(str)
,在python shell中查看适用于相应对象类型的方法(及其他内容)。