यहाँ कुछ शानदार जवाब हैं, और इसलिए इससे पहले कि मैं अपना खुद का कुछ रत्न प्रकाशित करूं (कोई माणिक दंड नहीं दिया गया) यहाँ पढ़ा है।
- पायथन एक शुद्ध ओओपी भाषा नहीं है - यह एक सामान्य उद्देश्य है, बहु-प्रतिमान भाषा है जो प्रोग्रामर को उन प्रतिमानों का उपयोग करने की अनुमति देता है जिनके साथ वे सबसे अधिक सहज हैं और / या प्रतिमान जो उनके समाधान के लिए सबसे उपयुक्त हैं।
- पायथन में प्रथम श्रेणी के कार्य हैं, इसलिए
len
वास्तव में एक वस्तु है। दूसरी ओर, रूबी में प्रथम श्रेणी के कार्य नहीं हैं। तो len
फंक्शन ऑब्जेक्ट की अपनी विधियाँ हैं जिन्हें आप चलाकर निरीक्षण कर सकते हैं dir(len)
।
यदि आपको अपने कोड में काम करने का तरीका पसंद नहीं है, तो अपने पसंदीदा तरीके का उपयोग करके कंटेनरों को फिर से लागू करना आपके लिए मामूली है (नीचे उदाहरण देखें)।
>>> class List(list):
... def len(self):
... return len(self)
...
>>> class Dict(dict):
... def len(self):
... return len(self)
...
>>> class Tuple(tuple):
... def len(self):
... return len(self)
...
>>> class Set(set):
... def len(self):
... return len(self)
...
>>> my_list = List([1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'])
>>> my_dict = Dict({'key': 'value', 'site': 'stackoverflow'})
>>> my_set = Set({1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'})
>>> my_tuple = Tuple((1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F'))
>>> my_containers = Tuple((my_list, my_dict, my_set, my_tuple))
>>>
>>> for container in my_containers:
... print container.len()
...
15
2
15
15
len
है। उन्हें लगता है कि लोगों को लागू.__len__
करने के लिए मजबूर करने की तुलना में लोगों को लागू करना आसान है.len()
। इसकी एक ही बात है, और एक बहुत साफ दिखता है । अगर भाषा में OOP होने वाला है__len__
, तो दुनिया में क्या है बनाने की बातlen(..)