python遵循什么协议_什么是Python的序列协议?
这不是真的一致.
int
PySequence_Check(PyObject *s)
{
if (PyDict_Check(s))
return 0;
return s != NULL && s->ob_type->tp_as_sequence &&
s->ob_type->tp_as_sequence->sq_item != NULL;
}
PySequence_Check检查对象是否提供C序列协议,通过表示对象类型的PyTypeObject中的tp_as_sequence成员实现.此tp_as_sequence成员是一个指向结构的指针,该结构包含一系列用于序列行为的函数,例如sq_item用于通过数字索引检索项目,sq_ass_item用于项目分配.
具体来说,PySequence_Check要求其参数不是dict,并且它提供sq_item.
使用Python编写的__getitem__类型将提供sq_item,无论它们是概念序列还是映射,因此用Python编写的不从dict继承的映射将通过PySequence_Check.
另一方面,collections.abc.Sequence仅检查对象是否具体地从collections.abc.Sequence继承,或者它的类(或超类)是否使用collections.abc.Sequence显式注册.如果你只是自己实现一个序列而不做其中任何一个,它就不会通过isinstance(your_sequence,Sequence).此外,使用collections.abc.Sequence注册的大多数类都不支持所有collections.abc.Sequence的方法.总体而言,collections.abc.Sequence的可靠性远远低于人们通常的预期.
至于什么算作实际中的序列,它通常是任何支持__len__和__getitem__的整数索引从0开始并且不是映射.如果一个函数的文档说它需要任何序列,那几乎总是它需要它.不幸的是,“不是映射”很难测试,原因类似于“序列”如何难以确定.
python遵循什么协议_什么是Python的序列协议?相关推荐
- python 迭代器协议_浅谈Python中的生成器和迭代器
迭代器 迭代器协议 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么返回一个异常来终止本次迭代.(只能往前走,不能往后退!) 迭代器对象 遵循了(实现了)迭代器协议的对象.(对象内 ...
- 做python的心得体会_实训python的心得体会
如何学习Python的一些总结 C++.Java乃至C#都可以看做是同一类型的语言:C++还算灵活,但纷繁复杂的语法使得生产效率低下,Java提高了生产效率,却损失了灵活性;C#算是在生产效率和灵活性 ...
- python安装与程序_二、Python安装和第一个程序
<1.Python语言介绍 1.官方介绍:Python 是一款易于学习且功能强大的编程语言. 它具有高效率的数据结构,能够简单又有效地实现面向对象编程.Python 简洁的语法与动态输入之特性, ...
- python适用于哪些芯片_五年Python三大秘诀!日常生活不可或缺的秘密武器
EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 本帖最后由 Ber_thaw99 于 2020-12-28 14:07 编辑' P& t5 n# [5 J) Y& ...
- python展开函数方法_逐步展开Python详细教学—Python语法
Python语法–在Python世界迈出第一步 我们已经拥有了许多的编程语言,而且都有自己的特色,但是一种语言的独特之处在于它的特性.最终,是它的特点让它被选中或通过项目.因此,在开始更深入的Pyth ...
- python 宏处理库_常用的Python库,给大家分享一下!
Tkinter---- Python默认的图形界面接口. Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组.Tcl/Tk是 ...
- python urllib dns 缓存_新手用Python做一个网页爬虫
咱们好哈,最近博主在学习Python,学习时期也遇到一些问题,获得了一些经历,在此将自个的学习体系地整理下来,假如咱们有爱好学习爬虫的话,能够将这些文章作为参阅,也期待咱们总共同享学习经历. 首要py ...
- python变量定义大全_详解python变量与数据类型
这篇文章我们学习 Python 变量与数据类型 变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念,变量可以通过变量名访问.在 Python 中 变量命名规定,必须是大小写英文,数字 ...
- python模块下载过程_常用的python模块及安装方法
bsddb3:BerkeleyDB的连接组件 Cheetah-1.0:我比较喜欢这个版本的cheetah cherrypy:一个WEB framework ctypes:用来调用动态链接库 DBUti ...
最新文章
- 从摩尔定律到人工智能,指数定律释放人类潜能
- Machine Learning | (9) 回归算法-线性回归
- 【原创】C# 递归获取指定目录的子目录及其所有文件
- MD5加密解密帮助类
- python中等于号可以用is代替_python中字符串比较使用is、==和cmp()总结
- 目前银行利息高还是余额宝利息高?如何选择?
- 论文浅尝 | 融入知识的弱监督预训练语言模型
- R速成指南-时间序列重采样
- 智能实验室-杀马(Defendio) 4.11.0.790
- 【python】通讯录制作
- matlab差分法解拉普拉斯方程,拉普拉斯方程有限差分法的MATLAB实现
- 封锁阳光大学(染色)
- 基于Zigbee的智能家居系统
- winform TreeView节点中的CheckBox 禁用
- python operator用法,Python operator.eq()函数与示例
- Eclipse+Java+Swing实现企业人事管理系统
- 电脑共享手机连接的WiFi
- Frequent Pattern
- xcode13 swift语言 ios开发 快捷代码优化方式(代码重构)例子
- STM32F103C8T6引脚图及引脚功能说明