نسخه Python 3.15.0 در ۹ اکتبر ۲۰۲۶ منتشر شده و چند قابلیت مهم در زمینهی
import، ساختار دادهها، Performance و ابزارهای Debugging اضافه کرده. اینها مهمترین تغییرات فنی این نسخهاند.بارگذاری ماژول در زمان نیاز - Lazy Imports
قبلاً با
import، ماژول بلافاصله بارگذاری میشد اما حالا میتونیم با کلمهی lazy بارگذاری رو تا زمان استفاده از ماژول به تأخیر بندازیم. این قابلیت میتونه Startup Time اپلیکیشنهای بزرگ رو کاهش بده.lazy import json
print("Application started")
data = json.loads('{"name": "Python"}')
در این مثال،
json هنگام استفاده از json.loads() بارگذاری میشه، نه در لحظهی اجرای دستور import.دیکشنری غیرقابلتغییر - frozendict
نوع دادهی جدید
frozendict یک Mapping غیرقابلتغییره یعنی بعد از ساخت، نمیتونیم کلید یا مقدارش رو تغییر بدیم. اگر تمام کلیدها و مقادیر Hashable باشن، خود این ساختار هم قابل Hash شدن خواهد بود.data = frozendict({"name": "Python", "version": 3.15})
# data["version"] = 3.16 # TypeErrorاین قابلیت برای نگهداری Configurationها و دادههایی که نباید تصادفی تغییر کنن، مفیده.
متد Unpacking در Comprehension
حالا میتونیم از
* و ** برای باز کردن Iterableها و دیکشنریها مستقیماً داخل Comprehension استفاده کنیم.lists = [[1, 2], [3, 4], [5]]
flat = [*items for items in lists]
# [1, 2, 3, 4, 5]
این Syntax جایگزین مختصرتری برای بعضی Nested Comprehensionها و استفاده از
itertools.chain() محسوب میشه.فرمت UTF-8 بهعنوان Encoding پیشفرض
از این نسخه، Encoding پیشفرض عملیات متنی مستقل از تنظیمات سیستم،
UTF-8 خواهد بود در نتیجه احتمال بروز مشکلات Encoding بین سیستمعاملهای مختلف کمتر میشه.with open("data.txt", encoding="utf-8") as file:
text = file.read()نوشتن صریح
encoding="utf-8" همچنان برای سازگاری و خوانایی کد توصیه میشه.بهبود JIT Compiler و Performance
کامپایلر آزمایشی JIT در Python 3.15 پیشرفت قابلتوجهی داشته. طبق Benchmarkهای رسمی، بهبود میانگین هندسی Performance آن نسبت به Interpreter استاندارد، روی Linux با معماری x86-64 حدود ۷ تا ۸ درصد گزارش شده.
نکتهی مهم: این عدد به نسخهی JIT و Benchmarkها مربوطه به معنی سریعتر شدن ۸ درصدی تمام برنامههای پایتون نیست. JIT هم همچنان قابلیتی آزمایشی و وابسته به نحوهی Build کردن Python محسوب میشه.
ابزار جدید Profiling با نام Tachyon
ماژول جدید
profiling.sampling ابزار Tachyon رو برای تحلیل Performance معرفی کرده ابزاری که با Sampling از Stack Traceها کمک میکنه بفهمیم زمان اجرای برنامه صرف کدوم بخشها میشه، بدون اینکه لازم باشه کد رو تغییر بدیم.این قابلیت برای بررسی Bottleneckها در سرویسهای در حال اجرا و Production کاربردیه.
بهبود Error Messageها
پایتون حالا در بعضی خطاهای
AttributeError پیشنهادهای دقیقتری ارائه میده؛ مثلاً اگر بهجای append() از متد اشتباه push() استفاده کنیم، پیغام خطا میتونه متد درست یعنی append رو پیشنهاد بده. این تغییر کوچک، Debugging رو سادهتر میکنه.نکته مهم:
برای پروژههای واقعی، قبل از مهاجرت به 3.15 باید سازگاری Dependencyها و کتابخانههای Third-party رو بررسی کرد بهخصوص پروژههایی که به C Extensions یا ابزارهای ML وابسته هستن.
@silicon_brain | از هوش مصنوعی عقب نمانید