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