繁体   English   中英

Python encode() 和 decode() 字符串方法

[英]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前缀的意思。 decodebytes对象的一种方法,默认编码是 UTF-8,但您可以指定其他编码。

您的变量utf_string是一个字符串。 encode是一种字符串方法。 默认编码为 UTF-8,但您可以指定其他编码。

正如您所发现的,这两种方法一起启用bytes之间的来回转换,它像字符串一样不可变,但是是小整数和字符串的序列,字符串表示 Unicode 代码点。 这两种方法都记录在 Python标准库文档中

Python 标准库通常具有示例性文档,当您遇到此类问题时,该文档应该是您的首选。

  1. 可以在此处找到两者的文档。 搜索“bytes.decode”和“str.encode”。

  2. 显然从(1)。

  3. 您可以在 python shell 中使用help(<type>) ,例如help(str)来查看可用于相应对象类型的方法(和其他东西)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM