class Bag:
def __init__(self, i=None):
self.bag = []
if i == None:
pass # i is None, do nothing after create empty bag
elif type(i)==list:
self.bag.extend(i) # append whole list i into bag with extend method
else:
self.bag.append(i) # append single item i into bag
def __repr__(self):
for s in self.bag :
return s
def __str__(self):
for s in self.bag :
return s
In der __str__method. Es sollte eine Zeichenfolge zurückgeben.wie Sie eine Liste in eine bestimmte Zeichenfolge ändern.
Die Liste ist Bag (['a', 'c', 'b', 'b', 'd', 'd', 'd']). Und
__str__ is supposed to return Bag(a[1], c[1], b[2], d[3])
Kann mir jemand sagen, wie es funktioniert? Danke vielmals.
Beide for-Schleifen geben die ersten s zurück und stoppen dann. – elethan
anstatt 'type (i) == list', sind Sie besser dran mit' isinstance (i, list) 'oder sogar' isinstance (i, collections.Iterable) ' – mgilson