पायथन 2.6 (और पहले) hex()
और oct()
अंतर्निहित कार्यों को __hex__
और __oct__
विशेष कार्यों को परिभाषित करके कक्षा में ओवरलोड किया जा सकता है। हालांकि पाइथन 2.6 के नए bin()
अंतर्निहित फ़ंक्शन के व्यवहार को ओवरलोड करने के लिए __bin__
विशेष फ़ंक्शन नहीं है।पाइथन 2.6 में oct() और हेक्स() जैसे बिन() को ओवरलोड किया जा सकता है?
मैं जानना चाहता हूं कि bin()
को लचीला रूप से ओवरलोड करने का कोई तरीका है, और यदि नहीं, तो मैं सोच रहा था कि असंगत इंटरफ़ेस क्यों?
मुझे पता है कि __index__
विशेष फ़ंक्शन का उपयोग किया जा सकता है, लेकिन यह लचीला नहीं है क्योंकि यह केवल एक पूर्णांक लौटा सकता है। मेरे विशेष उपयोग के मामले bitstring मॉड्यूल, जहां आगे शून्य बिट्स महत्वपूर्ण समझे जाते हैं से है:
>>> a = BitString(length=12) # Twelve zero bits
>>> hex(a)
'0x000'
>>> oct(a)
'0o0000'
>>> bin(a)
'0b0' <------ I want it to output '0b000000000000'
मुझे लगता है इस को प्राप्त करने का कोई तरीका नहीं है कि वहाँ है, लेकिन मैंने सोचा कि यह पूछने के लिए चोट नहीं होता!
धन्यवाद, यह जानना उपयोगी है। हालांकि मैंने पहले से ही फॉर्म में आउटपुट प्राप्त करने में कामयाब रहा है, मैं बस इसे वापस लौटने के लिए बिन फ़ंक्शन नहीं मिला। आपकी str.format विधि हालांकि मैंने उपयोग की गई विधि से काफी संक्षिप्त है! –
यह भी देखें http://stackoverflow.com/questions/3258330/converting-from-hex-to-binary-without-losing-leading-0s-python – endolith