या क्या ऐसी विशिष्ट परिस्थितियाँ हैं जहाँ एक दूसरे से बेहतर है?

अब तक, मैंने केवल इतना ही इकट्ठा किया है कि भविष्य केवल >=2.6 या >=3.3 के लिए ही उपलब्ध है।

मेरे पास वर्तमान कोड बहुत ही बुनियादी है और प्रिंट फ़ंक्शन कॉल के उपयोग को छोड़कर पायथन 2 और 3 पर समान है। हालांकि, समय के साथ कोड अधिक जटिल हो सकता है और मैं शुरुआत से ही python2/3 संगत कोड लिखने के लिए सही दृष्टिकोण का उपयोग करना चाहता हूं।

1
Lolo 3 अप्रैल 2018, 20:02

3 जवाब

सबसे बढ़िया उत्तर

__future__ मॉड्यूल पायथन में अंतर्निहित है, और प्रोग्रामर को फीचर सेट का अग्रिम उपयोग करने की अनुमति देने के लिए प्रदान किया जाता है जिन्हें अभी तक पूर्ण नहीं माना जाता है। हालाँकि कुछ सुविधाएँ (जैसे, from __future__ import print_function) विशेष रूप से Python 2 प्रोग्राम को Python 3 में पोर्ट करने में सहायता के लिए प्रदान की जाती हैं, इसका उपयोग किसी भी रिलीज़ की अग्रिम सुविधाओं तक जल्दी पहुँच प्रदान करने के लिए भी किया जाता है।

__future__ अद्वितीय है, इसमें कुछ आयात जैसे print_function वास्तव में दुभाषिया द्वारा स्वीकृत सिंटैक्स को बदल सकते हैं।

python-future एक तृतीय-पक्ष मॉड्यूल है, जो संगतता सुविधाएं प्रदान करने वाले कई मॉड्यूलों में से एक है। आप six पर भी एक नज़र डाल सकते हैं, हालांकि यह अब दाँत में कुछ लंबा है, और python-modernize। यह बहुत संभव है कि आप पाएंगे कि आपको __future__ और future दोनों का एक साथ उपयोग करने की आवश्यकता है।

एक और रणनीति जिस पर आपने विचार नहीं किया होगा, वह है अपने स्रोत को पायथन २ में बदलना जिसे 2to3 उपयोगिता द्वारा स्वचालित रूप से अनुवादित किया जा सकता है। एक lib3to2 भी है जो दूसरे तरीके से अनुवाद करेगा, हालांकि मुझे इसका कोई अनुभव नहीं है।

3
holdenweb 3 अप्रैल 2018, 17:19

जब तक आपके पास Python 2.x का समर्थन करने के लिए बहुत विशिष्ट कारण नहीं है, तब तक Python 3.x भविष्य है। इसे रिलीज हुए 10 साल से ज्यादा का समय हो गया है।

2.x श्रृंखला का अंतिम पायथन 2.7, 2020 में जीवन का अंत है। https://www.python.org/dev/peps/pep-0373/

TLDR: यह Python 3 का उपयोग करने का समय है

1
gahooa 3 अप्रैल 2018, 17:08

Python 2.7 का रखरखाव 2020 से पहले नहीं किया जाएगा, देखें https://pythonclock.org/

इस प्रकार, यदि आपने अभी-अभी अजगर सीखना शुरू किया है, तो मेरा सुझाव है कि आप केवल अजगर 2 का उपयोग करने और __future__ आयात करने के बजाय सीधे अजगर 3 का उपयोग करें।

2
gahooa 3 अप्रैल 2018, 17:09