|
בשעה טובה שוחררה גרסה 3.0 של פייתון. גרסה זו כוללת שינויים בשפה כמו טיפול במילונים ומחרוזות והסרת תכונות (deprecated) אשר אינם תואמים אחורה לענף 2.
אז מה חדש בגרסה 3.0 ? בין היתר:
- print הופך ממילה שמורה לפונקציה עם כל המשתמע מכך (כולל האפשרות להחליפה במודול מקומי)
- חלק מפונקציות אשר החזירו בעבר רשימות מחזירות כיום iterataors ו-views (דוגמא: map, filter ו-zip)
- range מתנהג כעת כמו xrange (אשר בוטל)
- השוואה בין ערכים אשר לא ניתן לסדר אותם בסדר טבעי (כמו מספר למחרוזת) זורקים TypeError, בעוד בגרסאות קודמות פשוט התעלמו מכך
- שינויים באופן הטיפול במיונים (הפונקציה cmp וה-method __cmp__ בוטלו)
- int כעת מתנהג כמו long בעבר
- חילוק בין שני שלמים מחזיר כעת float
- שינויים בטיפול בטקסט. כעת כל מחרוזת היא מסוג יוניקוד, ומידע בקידודים שונים אמור להיות שמור ב-bytes. ניסיון לערבב ביניהם יגרום ל-TypeError, מה שאומר שיש לציין בפירוש את ההמרה של הקידוד בעת הצורך לעשות זאת
- כתוצאה מכך גם basestring הוסר, str הוא הטיפוס הבסיסי כעת
- קידוד ברירת המחדל של קוד המקור הוא utf-8
- שינויים רבים בתחביר (מומלץ מאוד לקרוא את רשימת החידושים המקושרת לעיל)
- ארגון מחדש של הספריות הסטנדרטיות כולל ניקוי של ה-namespace
- שינויים בטיפול ב-Exceptions
- כעת אפשר להשתמש ב-super ללא צורך בפרמטרים נוספים (הדרך הקודמת עדיין נתמכת)
- raw_input הוחלף ב-input כאשר ההתנהגות הקודמת של input בוטלה (אם מתעקשים אפשר להשתמש ב-eval על input)
- שינויים ב-C API
ניתן לשער שייקח עוד זמן לא מבוטל עד ששימוש בגרסה זו יחליף את ענף 2, ולו רק עקב הצורך במעבר של ספריות צד שלישי ותשתיות גדולות אליה. כפתרון ביניים יש את פייתון 2.6, אליו ניתן להסב בקלות יחסית ספריות קיימות ומשם המעבר חלק (ניתן להפעיל את 2.6 עם דגל -3 אשר יזהיר אודות תכונות אשר בוטלו ב-3.0 או שינויים). כך שהפתרון יהיה להסב לענף 2.6, לוודא שחבילת הבידקות רצה כראוי ולתקן את הדרוש תיקון.
יש גם את הכלי 2to3 אשר עוזר בהסבת קוד לענף החדש.
אכן שינויים רבים, אך לדעתי רובם די במקום, הופכים השפה לעקבית ומסודרת יותר ומטפלים בדברים שנגררו זמן רב עקב שמירת התאימות הנדרשת במהלך חיי ענף 2 (אני די מרוצה מהטיפול ב-namespaces של הספריה הסטנדרטית, היה די מבולגן בחלק מהמודולים). | |
|
שוחררה פייתון 3.0 | כניסה / יצירת מנוי חדש | 37 תגובות |
| ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן |
|
|