מה חדש בפייתון 3.9
בשבוע שעבר שוחררה גרסת פייתון 3.9 והיא כרגיל מביאה עמה כל מיני דברים מעניינים.
כשמשתחררת גרסה של פייתון, בדרך כלל ה release notes מחולקים לנושאים כמו:
מטרת הפוסט היא לכלול כמה מהדברים שאני מצאתי מעניינים ושיוכלו להעיל לי בחיי היומיום כמפתח.
שימו לב: בגרסה 3.9 החבר׳ה של פייתון לקחו צעדים רציניים נוספים בהורדת התמיכה ובתאימות לאחור אל מול פייתון 2.7. בעבר פיצ׳רים פותחו עם תאימות מסוימת לאחור אבל מגרסה לגרסה הפיצ׳רים תואמים פחות ואף יורדת תאימות בפיצ׳רים ישנים. זאת ניתן לראות לפי Deprecation Warnings על גבי ספריות ישנות. אם אינכם בטוחים באילו פיצ׳רים אתם משתמשים שאינם נתמכים עוד, השתמשו במדריך הזה על מנת לבדוק זאת.
הפיצ׳רים החדשים
אופרטורים למיזוג ועדכון dictionaries
>> d1 = {'oranges': 2, 'apples': 4}
>> d2 = {'bananas': 3, 'oranges': 1}
Merge
>> d3 = {**d1,**d2}
>> d3
{'oranges': 1, 'apples': 4, 'bananas': 3}
Update
>> d1.update(d2)
>> d1
{'oranges': 1, 'apples': 4, 'bananas': 3}
כעת נוכל להשתמש באופרטור | (pipe/קו ניצב) על מנת למזג בין ה dicts ולהחזיר dict שלישי או באופרטור =| על מנת למזג מילון אחד אל מילון אחר באופן הבא:
>> d1 = {'oranges': 2, 'apples': 4}
>> d2 = {'bananas': 3, 'oranges': 1}
Merge
>> d3 = d1|d2
>> d3
{'oranges': 1, 'apples': 4, 'bananas': 3}
Update
>> d1|=d2
>> d1
{'oranges': 1, 'apples': 4, 'bananas': 3}
פונקציות חדשות ל string לצורך הסרה של תחיליות וסופיות (prefixes and suffixes)
עד היום, כדי להוריד חלק מסוים בסוף המחרוזת בה אנחנו משתמשים היינו צריכים להשתמש ב slicing באופן הזה:
>> url = 'automatzia.com'
>> if url.endswith('.com'):
.. url = url[:-4]
>> url
'automatzia'
החל מהגרסה החדשה נוכל פשוט להשתמש בפונקציה removesuffix (או removeprefix אם מדובר על תחילית) באופן הבא:
>> url = 'automatzia.com'
>> url = url.removesuffix('.com')
>> url
'automatzia'
אין כל ויכוח שבאופן הזה הקוד יותר קריא ואלגנטי. וגם על הדרך חסכנו if.
Type hinting על collections באופן מובנה
>> import typing
>> def print_fruits(fruits: typing.List[str]) -> None:
.. for fruit in fruits:
.. print(fruit)
>> def print_fruits(fruits: list[str]) -> None:
.. for fruit in fruits:
.. print(fruit)
איזה כיף שהפוסט מתומצת ומכיל דוגמאות של before & after. תודה רבה תומר!
השבמחק