すべてのリストは__setitem__
と__getitem__
であり、intは__add__
__sub__
であり、その値で動作するようになっています。しかし、その価値は実際にどこに保存されているのですか/それをどのように参照できますか?クラスを模倣するようにしたいとします。これは、このリスト、int、文字列などのオブジェクトの値はどこに保存されていますか?
class Memory(object):
def __init__(self):
self.data = []
def __getitem__(self, i):
return self.data[i]
def __setitem__(self, key, item):
self.data[key] = item
これはあまり効率的ではない、と私は複数のクラスで数百行にまたがることができ、最も可能性の高い個別のクラスのすべての単一のメソッドを記述する必要があるだろうようになります。
class Memory(list):
...
しかし、あなたはその値を参照することはできませんので、あなたがそのメソッドのいずれかを編集することはできません。のようなリストの子であることクラスを作成するには
次の最善の解決策。変更した場合__setitem__()
これで何をしたいのですか?リストクラスを作成して、1つのラムダでリストの設定やその他の操作の値をすべて行うことができます。 __setitem__(key,item)
に直接電話するだけでは、既にリストにある項目の範囲外のキーを入力することはできないからです。 __setitem__()
メソッドを呼び出さずにリストの値を編集するにはどうすればよいでしょうか。
コンピュータで! http://s2.quickmeme.com/img/6a/6a3b31692b322eea09f6888adf1ff62f5d003c9a7d8c98e8922faaca070f4582.jpg –