پایتون ۳ یا ۳۰۰۰ یا py3k نسخه ای از پایتون است که تغییرات زیاد و پایه ای دارد و در کل backward compatibilly ندارد.
فهرست برخی از تغییرات عمده پایتون ۳ به نقل از ویکیپدیا
تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث میشود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر میشود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد. اضافه شدن حمایت از یادآوری تابع انتخابی که میتواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود. یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییر ناپذیر؛ با یک تایپ مطابق با bytearray تغییر پذیر، که هر دو آرایه از بایت را ارائه میکنند. از بین بردن خصوصیات سازگاری معکوس، شامل کلاسهای به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشتهای، و گزارشهای نسبتاً نا آشکار.
در سایت اصلی پایتون اینگونه نوشته شده است که اگر کارتونو توانستنید با پایتون ۳ انجام دهید. دمتون گرم. ادامه بدهید.
در کل پایتون ۳ با مشکل پشتیبانی محدود کتابخانه ها مواجه است. هنوز کتابخانههایی هستند که به پایتون ۳ port نشدهاند. از طرفی اکثر سرور ها از سری python 2.x پشتیبانی می کنند. در کل پایتون ۳ زبان کاملی است و پشتیبانی خیلی بهتری از unicode دارد. از طرفی ابزار هایی مثل 2to3 کمک می کند کد های قدیمیتان را به پایتون ۳ تبدیل کنید (البته نه خیلی راحت)
2to3 - Automated Python 2 to 3 code translation
چه کتابخانه هایی هنوز به پایتون ۳ منتقل نشده اند؟
gevent - Python networking library
البته یک سری از کتابخانه ها به صورت غیر رسمی port شدهاند:
Some unofficial binaries are available for Python 3 PIL
کتابخانه مهمی که به پایتون ۳ منتقل شدهاند:
CherryPy — A Minimalist Python Web Framework
مقایسه در کد
قدیمی:
print "The answer is", 2 * 2 print x, # Trailing comma suppresses newline print # Prints a newline print >> sys.stderr, "fatal error" print (x, y) # prints repr((x, y))
جدید:
print("The answer is", 2 * 2) print(x, end=" ") # Appends a space instead of a newline print() # You must call the function! print("fatal error", file=sys.stderr) print((x, y)) # Not the same as print(x, y)!
نتیجه گیری
در کل پایتون ۲ با پایتون ۳ تفاوت خیلی زیادی در کد ندارند و برنامه نویس پایتون ۲ به راحتی می تواند پایتون ۳ را یاد بگیرد. اما منابع آموزشی مربوط به پایتون ۲ بسیار زیاد تر. ابزار بیشتر و ... دارند. توصیه آخرم این است که تازه وارد ها با پایتون ۲ کار کنند و فقط از پایتون ۳ استفاده کنند که دقیقا می دانند می خواهند چه استفاده ای از پایتون ۳ بکنند. یعنی تمامی نیاز مندی کارشان را در نظر بگیرند.
مقالات مرتبط
How to support both Python 2 and 3
How CherryPy supports Python 2 and 3
($) Porting to Python 3 - The Book Site
Python 2 vs Python 3 and Tutorial
Should I learn Python 2 before 3, or start directly from Python 3?