2009-04-17 11 views
22

मैं एक वर्ग है कि एक डेटा संरचना के रूप में सूची से विरासत में मिली है उपयोग कर रहा हूँ:पायथन में 'टू बूलियन' ऑपरेटर ओवरराइडिंग?

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

सभी एकदम सही है, लेकिन अगर मैं के अंदर मेरी कक्षा की मेरी चीज़ का इस्तेमाल एक 'अगर', अजगर गलत पर यह मूल्यांकन करता है अगर सूची में अंतर्निहित कोई तत्व नहीं है। के बाद से मेरी कक्षा सिर्फ सूची नहीं है, मैं वास्तव में यह गलत मूल्यांकन करने के लिए केवल अगर यह कोई नहीं है, और यह सच है अन्यथा का मूल्यांकन करना चाहते हैं:

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 क्योंकि आप अपने आप को एक और अद्भुत पायथन मणि उजागर करते हैं :) –

उत्तर

संबंधित मुद्दे