Testen, ob Liste leer ist
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Code: Alles auswählen
In [39]: l = []
In [40]: if not l:
....: True
....:
....:
Out[40]: True
Leere Liste = False, also:
Code: Alles auswählen
>>> bool([])
False
Beide Wege funktionieren bei mir nicht:
Ich muss dazusagen, dass die Liste in einer anderen Funktion, aber in derselben Klasse definiert wird:
Wenn ich nun in meiner aufgerufenen Funktion save_mapping die Existenz von Elementen in der Liste überprüfen will vermöge:
bekomme ich immer einen
AttributeError: csv_choicelist
Ich muss dazusagen, dass die Liste in einer anderen Funktion, aber in derselben Klasse definiert wird:
Code: Alles auswählen
def csv_choice(self):
self.csv_choicelist = []
Code: Alles auswählen
def save_mapping(self):
if not (self.csv_choicelist):
print "leer!"
AttributeError: csv_choicelist
Die Klammern kannst du in Abfragen weglassen. Ich vermute einen Fehler in der Einrückung, sodass deine vermeintliche Methode vom Interpreter als Funktion außerhalb der Klasse erkannt wird. Paste doch mal bitte den kompletten Code auf http://paste.pocoo.org
@Caldar: Weist Du dem Attribut denn auch in der `__init__()` etwas zu? Falls nicht, muss natürlich `csv_choice()` vor `save_mapping()` mal aufgerufen werden, oder halt irgendeine andere Methode, die das Attribut an einen Wert bindet. Allerdings sollte man möglichst in der `__init__()` schon das komplette Objekt initialisieren.