یکی از بهترین اضافهها اینه که بالاخره میشه
TaskGroup توی asyncio رو تمیز و بیدردسر کنسل کرد. قبلاً برای متوقف کردن یه گروه تسک باید کلی حقه با Exception و suppress میزدیم، الان فقط:
tg.cancel()
و تمام.
یه تغییر خیلی خفن دیگه هم برای context managerهاست. از این به بعد وقتی از context manager بهعنوان decorator استفاده میکنیم، روی async function و generator هم درست کار میکنه. قبلاً decorator عملاً همون اول تموم میشد و کل lifecycle فانکشن رو پوشش نمیداد. این تغییر کوچیکه ولی برای کسایی که ابزارهای profiling/logging مینویسن خیلی ارزشیه.
تو بخش threading هم بالاخره iteratorهای thread-safe اضافه شدن. قبلاً اگر چند thread همزمان از یه iterator میخوندن احتمال خراب شدن state یا skip شدن دادهها وجود داشت. الان با:
threading.serialize_iterator(...)
خیلی راحت میشه امنش کرد.
یه قابلیت بامزه هم اضافه شده برای
Counter:الان عملگر xor (`^`) هم داره 😄
یعنی میشه symmetric difference روی Counterها انجام داد. شاید استفاده روزمره نداشته باشه ولی از لحاظ کاملتر شدن API حرکت جالبیه.
و آخرین چیزی که خیلی دوست داشتم:
الان میشه JSON رو مستقیم به ساختارهای immutable تبدیل کرد. یعنی مثلاً لیستها tuple بشن و objectها frozendict. برای caching و hash کردن دادهها خیلی کاربردیه.
در کل حس میکنم پایتون ۳.۱۵ بیشتر از اینکه فقط flashy feature داشته باشه، داره جاهای اذیتکننده و قدیمی زبان رو تمیز و بالغتر میکنه؛ همون تغییرایی که شاید تیتر خبر نشن ولی برنامهنویسها هر روز قدرشونو میفهمن.
https://blog.changs.co.uk/python-315-features-that-didnt-make-the-headlines.html
@codehalics | کدهالیک