2009-04-17 2 views
22

Я использую класс, который наследуется из списка в качестве структуры данных:Переопределение оператора «boolean» в python?

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

Все идеально, но если я использую мой объект моего класса внутри от «если», питон оценивает его значение False если в базовом списке нет элементов. Так как мой класс не просто список, я действительно хочу, чтобы оценить значение False, только если это не касается, и оценить Истина иначе:

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 поскольку вы, кажется, открываете себе еще один замечательный жемчуг Python :) –

ответ

Смежные вопросы