Die Schwierigkeit ist, ich vergesse immer wider wie ich Methoden überschreiben kann bzw. wie ich an die Listen/Dict daten herran komme.
Ein Beispiel ähnlich wie diese hier wäre hilfreich:
Code: Alles auswählen
class MyList(list):
def append(self, value):
print "append:", value
list.append(self, value)
def extend(self, value):
print "extend:", value
list.extend(self, value)
def insert(self, index, value):
print "insert %r at position: %i" % (value, index)
list.insert(self, index, value)
def __repr__(self):
repr = "my own repr: >>>%s<<<" % list.__repr__(self)
return repr
def test(self):
for item in list:
print item
l = MyList()
l.append("FooBar")
l.extend(["Foo", "Bar"])
l.insert(0, "First!")
l += [1,2,3]
print l
print "-"*80
l.test()
Und da hab ich noch eine Frage, denn die Ausgabe sieht so aus:
Code: Alles auswählen
append: FooBar
extend: ['Foo', 'Bar']
insert 'First!' at position: 0
my own repr: >>>['First!', 'FooBar', 'Foo', 'Bar', 1, 2, 3]<<<
--------------------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 33, in <module>
l.test()
File "test.py", line 20, in test
for item in list:
TypeError: 'type' object is not iterable
Wie komme ich in test() an die Daten der Liste? Natürlich könnte ich die Schleife mit
list.__iter__(self) machen. Aber wo steck die liste als object?