جالب ترین نوآوری ها:
- بیان تکلیف:
عملگر جدید := به شما امکان می دهد مقادیری را به متغیرهای درون عبارات اختصاص دهید. مثلا:
اگر (n := len(a)) > 10:
print(f"فهرست خیلی طولانی است ({n} عنصر، مورد انتظار <= 10)") - آرگومان های فقط موقعیت:
اکنون می توانید مشخص کنید که کدام پارامتر تابع را می توان از طریق نحو آرگومان نامگذاری شده عبور داد و کدام را نمی توان. مثال:
def f(a، b، /، c، d، *، e، f):
چاپ (a, b, c, d, e, f)f(10، 20، 30، d=40، e=50، f=60) # خوب
f(10، b=20، c=30، d=40، e=50، f=60) # خطا، «b» نمی تواند آرگومان نامگذاری شده باشد
f(10، 20، 30، 40، 50، f=60) # خطا، «e» باید آرگومان نامگذاری شده باشداین تغییر راهی به توسعه دهندگان می دهد تا از کاربران API خود در برابر تغییرات در نام آرگومان تابع محافظت کنند.
- پشتیبانی از f-strings = برای خود مستند سازی عبارات و اشکال زدایی:
قند اضافه شده برای ساده کردن پیام های اشکال زدایی/ ثبت نام.
42 نفر
چاپ (f'Hello world {n=}.')
# "Hello world n=42" را چاپ خواهد کرد. - کلمه کلیدی ادامه را در بلوک نهایی ثابت کرد (قبلاً کار نمی کرد).
دیگر:
- شما می توانید به طور واضح مسیر کش بایت کد را به جای پیش فرض __pycache__ مشخص کنید.
- بیلدهای Debug و Release از یک ABI استفاده می کنند.
منبع: linux.org.ru