यह वह उत्तर नहीं हो सकता है जिसे आप ढूंढ रहे हैं, लेकिन अगर मैं आप थे तो मैं ऐसा नहीं करूँगा (और मुझे पूरा यकीन है कि आप आसानी से नहीं कर सकते हैं)।
कारण यह नहीं होना चाहिए कि पाइथन कुछ परिचालन करने के लिए आंतरिक रूप से len
का उपयोग करता है। एक और कारण शुद्ध टूटा तर्क है। ऊपर वर्णित आपका len
फ़ंक्शन खाली सूचियों या खाली चीज़ों के लिए ऋणात्मक लंबाई लौटाएगा। यह मेरे लिए काफी टूटा लगता है।
आप कर सकते हैं, केवल कुछ वर्गों पर लंबाई विधि को ओवरराइड कर सकते हैं (इससे आपके लिए बहुत समझ हो सकती है)। के लिए यह आप ऑपरेटर ओवरलोडिंग उपयोग कर सकते हैं, बस अपने वर्ग में विधि __len__
ओवरराइड:
class MyList(object):
def __len__(self,):
# Do your thing
तुम भी मेटा वर्गों में देखने के लिए चाहते हो सकता है, वहाँ इस विषय पर एक बहुत अच्छा stack overflow सवाल है।
धन्यवाद! मेरे लिए ठीक काम किया :) – DorianOlympia
** '__builtins__' CPython में एक निजी कार्यान्वयन विवरण है। ** आपको स्पष्ट रूप से 'बिल्टिन' मॉड्यूल (या 'पायथन 2 में' __builtin__') को स्पष्ट रूप से आयात करना चाहिए। – ppperry