近期比较空闲,也想更好的使用python,所以决定整理一下基础知识,代码来自源码,解析来自官方文档。
codecs.Codec = class Codec(builtins.object) 定义无状态编码器/解码器的接口。 .encode()/.decode()方法可以通过提供errors参数(字符串值)来使用不同的错误处理方案。 这些字符串值是预定义的: 'strict' - 引发ValueError错误(或子类) 'ignore' - 忽略该字符并继续下一个字符 'replace' - 替换为合适的替换字符 Python将在解码时使用内置Unicode编码解码器的官方U+FFFD替换字符,在编码时使用'?' 'surrogateescape' - 替换为专用代码点U+DCnn 'xmlcharrefreplace' - 替换为适当的XML字符引用(仅用于编码) 'backslashreplace' - 替换为反斜杠转义序列。 'namereplace' - 替换为\N{…}转义序列(仅用于编码) 允许值集可通过register_error进行扩展。 此处定义方法: decode(self, input, errors='strict') 解码对象输入并返回tuple (output object, length consumed) 输入必须是提供bf_getreadbuf缓冲槽的对象 Python字符串、缓冲区对象和内存映射文件就是提供此插槽的对象的示例 错误定义要应用的错误处理。它默认为"strict"处理 该方法不能在编解码器实例中存储状态 对于必须保持状态以使解码有效的编解码器,请使用StreamReader 在这种情况下,解码器必须能够处理零长度输入并返回输出对象类型的空对象 encode(self, input, errors='strict') 对对象输入进行编码并返回tuple (output object, length consumed) 错误定义要应用的错误处理。它默认为"strict"处理 该方法不能在编解码器实例中存储状态 对于必须保持状态以提高编码效率的编解码器,请使用StreamWriter 在这种情况下,解码器必须能够处理零长度输入并返回输出对象类型的空对象 此处定义数据描述符: __dict__ 实例变量字典(如果已定义) __weakref__ 对象的弱引用列表(如果已定义)
参考文档:Python 教程 — Python 3.10.0 文档
待完善...