2009-04-17 40 views
22

Tôi đang sử dụng một lớp học mà được thừa hưởng từ danh sách như một cấu trúc dữ liệu:Ghi đè toán tử 'boolean' trong python?

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

Tất cả là hoàn hảo, nhưng nếu tôi sử dụng đối tượng của tôi về lớp học của tôi bên trong của một 'nếu', trăn đánh giá nó là False nếu nằm trong danh sách thì không có phần tử nào. Kể từ khi lớp học của tôi không chỉ là danh sách, tôi thực sự muốn nó để đánh giá sai chỉ khi nó là Không, và đánh giá là True khác:

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 vì bạn có vẻ tự khám phá ra một viên ngọc Python tuyệt vời khác :) –

Trả lời

Các vấn đề liên quan