منبع اصلی نوشتار زیر در این لینک قرار دارد

پایتون ۲ یا پایتون ۳؟

پایتون ۳ یا ۳۰۰۰ یا py3k نسخه ای از پایتون است که تغییرات زیاد و پایه ای دارد و در کل backward compatibilly ندارد.

فهرست برخی از تغییرات عمده پایتون ۳٫۰ به نقل از ویکی پدیا

  •     تغییر پرینت چون یک تابع غیر قابل انتقال است نه یک توضیح. این باعث می‌شود که تغییر یک ماژول برای استفاده از یک تابع پرینت متفاوت، آسان باشد و بنابراین ایجاد نحو منظم تر می‌شود. در پایتون ۲٫۶ این امکان با تایپ کردن from – future – import print – function فراهم شد.
  •     اضافه شدن حمایت از یادآوری تابع انتخابی که می‌تواند برای معرفی تایپ خصوصی یا اهداف دیگر استفاده شود.
  •     یکسان کردن تایپ str/Unicode، به نمایندگی از یک متن، و معرفی یک تایپ byte تغییر ناپذیر؛ با یک تایپ مطابق با bytearray تغییر پذیر، که هر دو آرایه از بایت را ارائه می‌کنند.
  •     از بین بردن خصوصیات سازگاری معکوس، شامل کلاس‌های به فرم قبل، قسمت کردن اعداد صحیح، استثناءهای رشته‌ای، و گزارش‌های نسبتاً نا آشکار.


در سایت اصلی پایتون اینگونه نوشته شده است که اگر کارتونو توانستنید با پایتون ۳ انجام دهید. دمتون گرم. ادامه بدهید.

در کل پایتون ۳ با مشکل پشتیبانی محدود کتابخانه ها مواجه است. هنوز library هایی هستند که به python3 port نشده اند.
از طرفی اکثر سرور ها از سری python 2.x پشتیبانی می کنند.
در کل پایتون ۳ زبان کاملی است و پشتیبانی خیلی بهتری از unicode دارد.
از طرفی ابزار هایی مثل 2to3 کمک می کند کد های قدیمیتان را به پایتون ۳ تبدیل کنید (البته نه خیلی راحت)

 

چه کتابخانه هایی هنوز به پایتون ۳ منتقل نشده اند؟
 

Django framework
این فریم ورک طراحی وب هنوز نسخه پایتون ۳ نداده است ولی در برنامه دارند این کار را انجام دهند.

خبری در hackernews هست که بیشتر زمان را مشخص می کند. هرچند خیلی رسمی نیست


البته یک سری از کتابخانه ها به صورت غیر رسمی port شده اند.



کتابخانه مهمی که به پایتون ۳ منتقل شده اند


مقایسه در کد

Old: print \"The answer is\", 2*2
New: print(\"The answer is\", 2*2)

Old: print x,           # Trailing comma suppresses newline
New: print(x, end=\" \")  # Appends a space instead of a newline

Old: print              # Prints a newline
New: print()            # You must call the function!

Old: print >>sys.stderr, \"fatal error\"
New: print(\"fatal error\", file=sys.stderr)

Old: print (x, y)       # prints repr((x, y))
New: print((x, y))      # Not the same as print(x, y)!

 

نتیجه گیری
در کل پایتون ۲ با پایتون ۳ تفاوت خیلی زیادی در کد ندارند و برنامه نویس پایتون ۲ به راحتی می تواند پایتون ۳ را یاد بگیرد. اما منابع آموزشی مربوط به پایتون ۲ بسیار زیاد تر. ابزار بیشتر و ... دارند.
توصیه آخرم این است که تازه وارد ها با پایتون ۲ کار کنند و فقط از پایتون ۳ استفاده کنند که دقیقا می دانند می خواهند چه استفاده ای از پایتون ۳ بکنند. یعنی تمامی نیاز مندی کارشان را در نظر بگیرند.

 

مقالات مرتبط

 

 



برچسب ها : , , , , , ,