2012-05-30 10 views
10

पायथन 3.2 में, मैं आसानी से किसी ऑब्जेक्ट के प्रकार को बदल सकता हूं। उदाहरण के लिए:पायथन में बाइट प्रकार में स्ट्रिंग बदलना 2.7

x=0 
print(type (x)) 
x=bytes(0) 
print(type (x)) 

यह मुझे इस दे देंगे:

<class 'int'> 
<class 'bytes'> 

लेकिन, अजगर 2.7 में, ऐसा लगता है कि मैं यह करने के लिए एक ही तरह से उपयोग नहीं कर सकते। अगर मैं वही कोड करता हूं, तो यह मुझे यह देता है:

<type 'int'> 
<type 'str'> 

प्रकार को बाइट्स प्रकार में बदलने के लिए मैं क्या कर सकता हूं?

+0

मार्टिन के उत्तर में प्रासंगिक जानकारी है। –

उत्तर

8

प्रकार को बाइट्स प्रकार में बदलने के लिए मैं क्या कर सकता हूं?

आप नहीं कर सकते हैं, पाइथन 2.7 में 'बाइट्स' जैसे कोई प्रकार नहीं है।

पायथन से 2.7 दस्तावेज (5.6 अनुक्रम प्रकार): "सात अनुक्रम प्रकार हैं: तार, यूनिकोड तार, सूचियां, tuples, bytearrays, बफर, और xrange वस्तुओं।"

पायथन 3.2 दस्तावेज (5.6 अनुक्रम प्रकार) से: "छः अनुक्रम प्रकार हैं: तार, बाइट अनुक्रम (बाइट ऑब्जेक्ट्स), बाइट एरे (बाइटरीयर ऑब्जेक्ट्स), सूचियां, टुपल्स और रेंज ऑब्जेक्ट्स।"

11

आप प्रकार बदल नहीं रहे हैं, आप एक चर के लिए एक अलग मूल्य असाइन कर रहे हैं।

आप अजगर 2.x और 3.x के बीच मौलिक अंतरों में से एक पर भी मार रहे हैं; 2.x प्रकार unicode को पूरी तरह से सरलीकृत किया गया है str प्रकार बदल दिया गया है, जिसका नाम बदलकर bytes कर दिया गया है। यह आपके कोड में काम करने के लिए होता है क्योंकि पाइथन 2 के हाल के संस्करणों ने bytes को str के लिए उपनाम के रूप में जोड़ा है जो दोनों संस्करणों के तहत काम करने वाले लेखन कोड को आसान बनाने के लिए है।

दूसरे शब्दों में, आपका कोड अपेक्षित के रूप में काम कर रहा है।

+0

तो 2.7 में, क्या 3.2 में एक ही चीज़ करने के लिए मेरे पास कोई तरीका है? मैं बस इसे बाइट्स प्रकार में होना चाहता हूं। – Smith

+3

पायथन 2.7 * में 'str' टाइप करें * बाइट्स प्रकार है। –

4

पायथन 2.x, bytesstr के लिए सिर्फ एक उपनाम है, इसलिए सब कुछ अपेक्षित काम करता है। इसके अलावा, आप यहां किसी ऑब्जेक्ट के प्रकार को नहीं बदल रहे हैं - आप केवल x नाम को किसी भिन्न ऑब्जेक्ट पर पुनर्निर्मित कर रहे हैं।

+2

तो 2.7 में, क्या 3.2 में एक ही चीज़ करने के लिए मेरे लिए कोई तरीका है? मैं बस इसे बाइट्स प्रकार में होना चाहता हूं। – Smith

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