2009-04-17 9 views
22

Używam klasy, która jest dziedziczona z listy jako struktury danych:Zastępowanie operatora "do boolean" w python?

class CItem(list) : 
    pass 
oItem = CItem() 
oItem.m_something = 10 
oItem += [ 1, 2, 3 ] 

Wszystko jest idealne, ale jeśli mogę użyć przedmiot mojej klasie wewnątrz z „if”, pyton ocenia go na False jeśli podstawą lista nie ma elementów. Ponieważ moja klasa to nie tylko lista, naprawdę chcę to ocenić Fałsz tylko wtedy, gdy jest to None, i ocenić True inaczej:

a = None 
if a : 
    print "this is not called, as expected" 
a = CItem() 
if a : 
    print "and this is not called too, since CItem is empty list. How to fix it?" 
+1

+1, ponieważ wydaje się, że odsłaniasz kolejny wspaniały klejnot Python :) –

Odpowiedz