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, ponieważ wydaje się, że odsłaniasz kolejny wspaniały klejnot Python :) –