__setitem__
pythonsリストタイプのと__getitem__
コードがどこで定義されているのか知りたいのですが。リストがCで実装されていることは知っていますが、リストのインデックス作成とスライス操作を実装しているコードが見つかりません。
質問する
395 次
2 に答える
4
listobject.c
ファイルにはすべてが含まれています。
list_methods()
そのメソッドは構造体に列挙されています。また、さまざまなフックの実装へのさらなるポインターのPyList_Type
構造を研究することもできます。
__getitem__
と__setitem__
は両方のCシーケンスプロトコルの一部であるため、構造体は、のスロットにリストされている、これらのフックを定義PyList_Type
する新しい構造体を指します。list_as_sequence
tp_as_sequence
PyList_Type
list_item
関数は__getitem__
フックを実装し、__setitem__
で表されlist_ass_item
ます。
一方、スライスはマッピングプロトコルによって処理され、最終的にはとになりlist_as_mapping
ます。list_subscript
list_ass_subscript
于 2012-10-24T16:57:19.140 に答える
2
ファイルを見てくださいlistobject.c
...私は今日、あなたが探している多くのものを指し示す答えを追加しました
于 2012-10-24T16:56:33.557 に答える