日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python序列_什么是Python的序列协议?

發(fā)布時(shí)間:2025/3/12 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python序列_什么是Python的序列协议? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這不是真的一致.

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檢查對(duì)象是否提供C序列協(xié)議,通過(guò)表示對(duì)象類(lèi)型的PyTypeObject中的tp_as_sequence成員實(shí)現(xiàn).此tp_as_sequence成員是一個(gè)指向結(jié)構(gòu)的指針,該結(jié)構(gòu)包含一系列用于序列行為的函數(shù),例如sq_item用于通過(guò)數(shù)字索引檢索項(xiàng)目,sq_ass_item用于項(xiàng)目分配.

具體來(lái)說(shuō),PySequence_Check要求其參數(shù)不是dict,并且它提供sq_item.

使用Python編寫(xiě)的__getitem__類(lèi)型將提供sq_item,無(wú)論它們是概念序列還是映射,因此用Python編寫(xiě)的不從dict繼承的映射將通過(guò)PySequence_Check.

另一方面,collections.abc.Sequence僅檢查對(duì)象是否具體地從collections.abc.Sequence繼承,或者它的類(lèi)(或超類(lèi))是否使用collections.abc.Sequence顯式注冊(cè).如果你只是自己實(shí)現(xiàn)一個(gè)序列而不做其中任何一個(gè),它就不會(huì)通過(guò)isinstance(your_sequence,Sequence).此外,使用collections.abc.Sequence注冊(cè)的大多數(shù)類(lèi)都不支持所有collections.abc.Sequence的方法.總體而言,collections.abc.Sequence的可靠性遠(yuǎn)遠(yuǎn)低于人們通常的預(yù)期.

至于什么算作實(shí)際中的序列,它通常是任何支持__len__和__getitem__的整數(shù)索引從0開(kāi)始并且不是映射.如果一個(gè)函數(shù)的文檔說(shuō)它需要任何序列,那幾乎總是它需要它.不幸的是,“不是映射”很難測(cè)試,原因類(lèi)似于“序列”如何難以確定.

總結(jié)

以上是生活随笔為你收集整理的python序列_什么是Python的序列协议?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。