আপনি পাইথন 3 দিয়ে পাইথন 2 কোডবেস চালানোর চেষ্টা করছেন পাইথন 3-এ xrange()
নতুন নামকরণ করা range()
হয়েছিল।
এর পরিবর্তে পাইথন 2 দিয়ে গেমটি চালান। এটা বন্দর করার চেষ্টা করবেন না যদি না আপনি জানেন আপনি কি করছেন, সম্ভবত সেখানে পরলোক আরো সমস্যা হবে xrange()
বনাম range()
।
রেকর্ডের জন্য, আপনি যা দেখছেন তা কোনও সিনট্যাক্স ত্রুটি নয় বরং পরিবর্তে রানটাইম ব্যতিক্রম।
আপনি কী করছেন তা যদি আপনি জানেন এবং সক্রিয়ভাবে পাইথন 3 এর সাথে একটি পাইথন 2 কোডবেস সুসংগতভাবে তৈরি করছেন, আপনি আপনার মডিউলে গ্লোবাল নামটি একটি এলিফ হিসাবে যুক্ত করে কোডটি ব্রিজ করতে পারেন range
। (একাউন্টে বিবেচনা করুন যে পাইথন 3 এ আপনি এখনও কোনও তালিকার অবজেক্ট পাবেন তা নিশ্চিত করতে আপনাকে পাইথন 2 কোডবেজে কোনও বিদ্যমান ব্যবহার আপডেট করতে হতে পারে ):range()
list(range(...))
try:
# Python 2
xrange
except NameError:
# Python 3, xrange is now named range
xrange = range
# Python 2 code that uses xrange(...) unchanged, and any
# range(...) replaced with list(range(...))
অথবা সমস্ত ব্যবহার প্রতিস্থাপন xrange(...)
সঙ্গে range(...)
কোডবেস এবং তারপর পাইথন 2 পাইথন 3 সিনট্যাক্স সামঞ্জস্যপূর্ণ করতে একটি বিভিন্ন shim ব্যবহার করুন:
try:
# Python 2 forward compatibility
range = xrange
except NameError:
pass
# Python 2 code transformed from range(...) -> list(range(...)) and
# xrange(...) -> range(...).
আধুনিক codebases যে পাইথন 3 সামঞ্জস্যপূর্ণ হতে লক্ষ্য রাখি করতে চান তাদের জন্য বাঞ্ছনীয় শুধুমাত্র দীর্ঘ রান, এটা যখনই সম্ভব তারপর ব্যবহার করতে পাইথন 3 সিনট্যাক্স সহজ।