python:编解码器基类之增量式的编码和解码

  • IncrementalEncoder 对象
  • IncrementalDecoder 对象

IncrementalEncoder 和 IncrementalDecoder 类提供了增量式编码和解码的基本接口。 对输入的编码/解码不是通过对无状态编码器/解码器的一次调用,而是通过对增量式编码器/解码器的 encode()/decode() 方法的多次调用。 增量式编码器/解码器会在方法调用期间跟踪编码/解码过程。

调用 encode()/decode() 方法后的全部输出相当于将所有通过无状态编码器/解码器进行编码/解码的单个输入连接在一起所得到的输出。

IncrementalEncoder 对象

IncrementalEncoder 类用来对一个输入进行分步编码。 它定义了以下方法,每个增量式编码器都必须定义这些方法以便与 Python 编解码器注册表相兼容。

class codecs.IncrementalEncoder(errors=‘strict’)
IncrementalEncoder 实例的构造器。

所有增量式编码器必须提供此构造器接口。 它们可以自由地添加额外的关键字参数,但只有在这里定义的参数才会被 Python 编解码器注册表所使用。

IncrementalEncoder 可以通过提供 errors 关键字参数来实现不同的错误处理方案。 可用的值请参阅 错误处理方案。

errors 参数将被赋值给一个同名的属性。 通过对此属性赋值就可以在 IncrementalEncoder 对象的生命期内在不同的错误处理策略之间进行切换。

encode(object, final=False)
编码 object (会将编码器的当前状态纳入考虑) 并返回已编码的结果对象。 如果这是对 encode() 的最终调用则 final 必须为真值(默认为假值)。

reset()
将编码器重置为初始状态。 输出将被丢弃:调用 .encode(object, final=True),在必要时传入一个空字节串或字符串,重置编码器并得到输出。

getstate()
返回编码器的当前状态,该值必须为一个整数。 实现应当确保 0 是最常见的状态。 (比整数更复杂的状态表示可以通过编组/选择状态并将结果字符串的字节数据编码为整数来转换为一个整数值)。

setstate(state)
将编码器的状态设为 state。 state 必须为 getstate() 所返回的一个编码器状态。

IncrementalDecoder 对象

IncrementalDecoder 类用来对一个输入进行分步解码。 它定义了以下方法,每个增量式解码器都必须定义这些方法以便与 Python 编解码器注册表相兼容。

class codecs.IncrementalDecoder(errors=‘strict’)
IncrementalDecoder 实例的构造器。

所有增量式解码器必须提供此构造器接口。 它们可以自由地添加额外的关键字参数,但只有在这里定义的参数才会被 Python 编解码器注册表所使用。

IncrementalDecoder 可以通过提供 errors 关键字参数来实现不同的错误处理方案。 可用的值请参阅 错误处理方案。

errors 参数将被赋值给一个同名的属性。 通过对此属性赋值就可以在 IncrementalDecoder 对象的生命期内在不同的错误处理策略之间进行切换。

decode(object, final=False)
解码 object (会将解码器的当前状态纳入考虑) 并返回已解码的结果对象。 如果这是对 decode() 的最终调用则 final 必须为真值(默认为假值)。 如果 final 为真值则解码器必须对输入进行完全解码并且必须 刷新所有缓冲区。 如果这无法做到(例如由于在输入结束时字节串序列不完整)则它必须像在无状态的情况下那样初始化错误处理(这可能引发一个异常)。

reset()
将解码器重置为初始状态。

getstate()
返回解码器的当前状态。 这必须为一个二元组,第一项必须是包含尚未解码的输入的缓冲区。 第二项必须为一个整数,可以表示附加状态信息。 (实现应当确保 0 是最常见的附加状态信息。) 如果此附加状态信息为 0 则必须可以将解码器设为没有已缓冲输入并且以 0 作为附加状态信息,以便将先前已缓冲的输入馈送到解码器使其返回到先前的状态而不产生任何输出。 (比整数更复杂的附加状态信息可以通过编组/选择状态信息并将结果字符串的字节数据编码为整数来转换为一个整数值。)

setstate(state)
将解码器的状态设为 state。 state 必须为 getstate() 所返回的一个解码器状态。

python:编解码器基类之增量式的编码和解码相关推荐

  1. python:编解码器基类之无状态的编码和解码

    python:编解码器基类之无状态的编码和解码 基本 Codec 类定义了这些方法,同时还定义了无状态编码器和解码器的函数接口: Codec.encode(input, errors='strict' ...

  2. python爬虫Scrapy框架之增量式爬虫

    一 增量式爬虫 什么时候使用增量式爬虫: 增量式爬虫:需求 当我们浏览一些网站会发现,某些网站定时的会在原有的基础上更新一些新的数据.如一些电影网站会实时更新最近热门的电影.那么,当我们在爬虫的过程中 ...

  3. python抽象基类的作用_Python:多态、鸭子模型和抽象基类

    1. 多态 什么是多态 -- 多态,指的是一种事务具有多种形态: -- python是一种动态语言,默认支持多态,同一个方法 调用 不同的类对象 ,执行的 结果各不相同: 多态实现 -- 继承:不同子 ...

  4. python 抽象基类_python3 抽象基类

    1,抽象基类(Abstract base class或者 ABCs)用于 定义一组必须被类的"鸭子类型"实例实现的方法与属性,可以继承抽象基类本身的类作为类的实例,但是必须提供所有 ...

  5. 资讯类网站增量式爬虫

    一:网站增量式爬虫流程图 1)前提是A.B.C网站分类下历史数据已经爬取过 2)A.B.C网站下的同一网站下分类数据存储的表名有规律 二:代码实现 1)init初始化方法中添加基本的请求伪装信息 2) ...

  6. python bytes和bytearray_python bytes和bytearray、编码和解码

    str.bytes和bytearray简介 str是字符数据,bytes和bytearray是字节数据.它们都是序列,可以进行迭代遍历.str和bytes是不可变序列,bytearray是可变序列,可 ...

  7. WebP格式介绍(附python版本代码用于对图像进行WebP编码和解码)

    不管是 PC 还是移动端,图片一直是流量大头,如何保证在图片的精细度不降低的前提下缩小图片体积,成为了一个有价值且值得探索的事情.但如今对于 JPEG.PNG 和 GIF 这些图片格式的优化几乎已经达 ...

  8. python:codecs --- 编解码器注册和相关基类

    python:codecs --- 编解码器注册和相关基类 这个模块定义了标准 Python 编解码器(编码器和解码器)的基类并提供对内部 Python 编解码器注册表的访问,该注册表负责管理编解码器 ...

  9. 基类显式继承接口,类继承基类时又继承同一接口,引发接口方法混乱(显式继承接口的弊端)...

    基类BaseOutput显式继承了一个接口IOutput,之后类TrackOutput继承BaseOutput,同时又继承了IOutput接口,假定IOutput有方法Output,这样在TrackO ...

最新文章

  1. Android提示框与通知的使用
  2. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)
  3. 【第一届“文翁杯”现场竞技赛】(校内“欢乐”赛)T1—洗刷刷(dp)
  4. 框架和库的区别_框架和库之间的区别
  5. Django Rest Framework -解析器
  6. 接口interface修饰符相关问题总结
  7. 比较完整的URL验证
  8. (69)Vue-cli 打包与部署
  9. python 数据流中的移动平均值_Python实现数据流中的中位数【堆】
  10. 比较完整的熊猫烧香解决方案
  11. 康托尔连续统假设正确吗?
  12. java 发微信视频_分享java微信开发视频
  13. Linux虚拟机怎么越狱,iOS 13永久越狱工具Linux/windows版进展突破,就快来了(附视频)...
  14. NXP i.MX6Q 双屏同显hdmi显示闪烁解决方案
  15. VAE with a VampPrior
  16. 企业办公oa系统、医药OA办公后台管理、会议管理、用户管理、物料管理、活动管理、日常拜访、Axure医药内部管理平台、web端后台管理系统原型、医药OA系统、权限管理、Axure原型、rp原型
  17. Fortify SCA安装以及卸载
  18. net usershare 返回错误 255
  19. Vivado 程序计数器(含测试代码)
  20. 如何取消WinRAR评估版本的弹窗提醒

热门文章

  1. 线上网络监控工具 :U-APM网络分析功能上线啦
  2. 如何清除取消KMS激活
  3. 关于使用C++万能头文件时定义y1报编译错误的那点事
  4. C#调用Matlab2018 dll文件-快速傅里叶变换
  5. 数据结构与算法测试题
  6. 三相同步电动机的平衡方程式
  7. Python实现---南邮离散数学实验四:图的生成及欧拉(回)路的确定
  8. 华为北京研究所第一届黑客马拉松比赛-基于Android防止儿童走失
  9. pycharm关联hadoop开发
  10. java 反编译工具=_JAVA反编译工具精选