پٿون 3.8 پروگرامنگ ٻولي جو رليز

ترقي جي هڪ اڌ سال کان پوء پيش ڪيو وڏي پروگرامنگ ٻولي ڇڏڻ Python 3.8. Python 3.8 برانچ لاءِ اصلاحي تازه ڪاريون منصوبو آهي 18 مهينن اندر ڇڏڻ. 5 سالن تائين آڪٽوبر 2024 تائين نازڪ خطرن کي طئي ڪيو ويندو. 3.8 برانچ لاءِ اصلاحي تازه ڪاريون ھر ٻن مھينن ۾ جاري ڪيون وينديون، پٿون 3.8.1 جي پھرين اصلاحي رليز سان گڏ ڊسمبر لاءِ مقرر ٿيل آھي.

شامل ڪيل وچ ۾ جدت:

  • حمايت ڪمپليڪس ايڪسپريس ۾ تفويض آپريشن. نئين ”:=“ آپريٽر سان، اهو ممڪن آهي ته ٻين ايڪسپريشنز جي اندر ويليو اسائنمينٽ آپريشنز کي انجام ڏيڻ، مثال طور، مشروط بيانن ۾ ڊبل فنڪشن ڪالز کان بچڻ لاءِ ۽ جڏهن لوپ جي وضاحت ڪجي:

    جيڪڏهن (n := len(a)) > 10:
    ...

    جڏهن ته (block := f.read(256)) != ":
    ...

  • حمايت فنڪشن جي دليلن جي وضاحت لاءِ نئون نحو. جڏهن هڪ فنڪشن جي تعريف دوران دليلن کي ڳڻيو وڃي، توهان هاڻي وضاحت ڪري سگهو ٿا "/" دليلن کي الڳ ڪرڻ لاء جيڪو صرف ترتيب ڏئي سگهجي ٿو قدر جي بنياد تي جنهن ۾ قيمتون شمار ڪيا ويا آهن فنڪشن ڪال دوران، انهن دليلن مان جيڪي تفويض ڪري سگهجن ٿيون. ڪنهن به ترتيب ۾ (متغير = قدر نحو)). عملي پاسي، نئين خصوصيت Python ۾ فنڪشن کي مڪمل طور تي C ۾ موجود افعال جي رويي کي نقل ڪرڻ جي اجازت ڏئي ٿي، ۽ پڻ مخصوص نالن جي پابند ٿيڻ کان بچڻ لاء، مثال طور، جيڪڏهن پيراميٽر جو نالو مستقبل ۾ تبديل ڪرڻ جي رٿابندي ڪئي وئي آهي.

    "/" جھنڊو اڳ ۾ شامل ٿيل "*" پرچم کي پورو ڪري ٿو، متغيرن کي الڳ ڪري ٿو جنھن لاء صرف ھڪڙي تفويض فارم ۾ "variable=value" لاڳو ٿئي ٿي. مثال طور، فنڪشن ۾ "def f(a, b, /, c, d, *, e, f):" متغير "a" ۽ "b" صرف ترتيب ڏئي سگھجن ٿا قيمتون درج ٿيل آھن ,
    variables “e” ۽ “f”، صرف تفويض جي ذريعي “variable=value”، ۽ variables “c” ۽ “d” ھيٺ ڏنل طريقن سان:

    f(10, 20, 30, 40, e=50, f=60)
    f(10, 20, s=30, d=40, e=50, f=60)

  • شامل ڪيو ويو نئون C API
    Python جي شروعاتي پيٽرولر کي ترتيب ڏيڻ لاء، سڀني تي مڪمل ڪنٽرول جي اجازت ڏئي ٿي تشڪيل ۽ جديد غلطي کي سنڀالڻ جون سهولتون مهيا ڪرڻ. تجويز ڪيل API ان کي آسان بڻائي ٿو Python مترجم ڪارڪردگي کي ٻين C ايپليڪيشنن ۾ شامل ڪرڻ؛

  • لاڳو ٿيل C ٻولي ۾ لکيل شين تائين تيزيءَ سان رسائي لاءِ نئون Vectorcall پروٽوڪول. CPython 3.8 ۾، Vectorcall تائين پهچ اڃا تائين اندروني استعمال تائين محدود آهي؛ CPython 3.9 ۾ عوامي طور تي پهچندڙ APIs جي ڪيٽيگري ۾ منتقلي رٿيل آهي.
  • شامل ڪيو ويو رن ٽائم آڊيٽ هينڪس کي ڪال ڪري ٿو، جيڪي پٿون ۾ ايپليڪيشنون ۽ فريم ورڪ مهيا ڪن ٿيون، جيڪي اسڪرپٽ جي پيش رفت بابت گهٽ سطحي معلومات تائين پهچن ٿيون ته جيئن ڪيل ڪمن جو آڊٽ ڪجي (مثال طور، توهان ماڊلز جي درآمد کي ٽريڪ ڪري سگهو ٿا، فائلون کولڻ، ٽريس استعمال ڪندي، نيٽ ورڪ ساکٽ تائين رسائي، exec ذريعي ڪوڊ هلائڻ، eval ۽ run_mod؛
  • ماڊل ۾ اچار محفوظ Pickle 5 پروٽوڪول لاءِ سپورٽ، استعمال ڪيل شين کي سيريلائيز ڪرڻ ۽ ختم ڪرڻ لاءِ. Pickle توهان کي Python پروسيس جي وچ ۾ ڊيٽا جي وڏي مقدار جي منتقلي کي بهتر ڪرڻ جي اجازت ڏئي ٿو ملٽي ڪور ۽ ملٽي نوڊ ترتيبن ۾ ميموري ڪاپي جي عملن جي تعداد کي گهٽائڻ ۽ اضافي اصلاحي ٽيڪنالاجي لاڳو ڪرڻ جهڙوڪ ڊيٽا مخصوص ڪمپريشن الگورتھم استعمال ڪندي. پروٽوڪول جو پنجون نسخو هڪ آئوٽ آف بينڊ ٽرانسميشن موڊ جي اضافي لاءِ قابل ذڪر آهي، جنهن ۾ ڊيٽا کي مکيه اچار واري وهڪري کان الڳ الڳ منتقل ڪري سگهجي ٿو.
  • ڊفالٽ طور، Pickle پروٽوڪول جو چوٿون نسخو چالو ڪيو ويو آهي، جيڪو اڳ ۾ ئي پيش ڪيل ٽئين ورزن جي مقابلي ۾، اعلي ڪارڪردگي ۽ منتقل ٿيل ڊيٽا جي سائيز ۾ گهٽتائي جي اجازت ڏئي ٿو؛
  • ماڊل ۾ ٽائپنگ ڪيترائي نوان خاصيتون متعارف ڪرايا ويا آھن:
    • ڪلاس TypedDict associative arrays لاءِ جنهن ۾ قسم جي معلومات واضح طور تي مخصوص ڪيل ڊيٽا لاءِ ڪنجي سان لاڳاپيل آهي (“TypedDict('Point2D', x=int, y=int, label=str)”).
    • قسم لفظي، جيڪو توهان کي اجازت ڏئي ٿو هڪ پيٽرول کي محدود ڪرڻ يا قدر کي واپس ڪرڻ جي ڪجهه اڳواٽ بيان ڪيل قدرن تائين (“لفظي['connected'، 'disconnected']”).
    • ڊيزائن“آخري"، جيڪو متغير، افعال، طريقن ۽ طبقن جي قدرن کي بيان ڪرڻ ممڪن بڻائي ٿو جيڪو تبديل يا ٻيهر نه ٿو ڪري سگھجي ("pi: Final[float] = 3.1415926536").
  • بائيٽ ڪوڊ سان گڏ مرتب ڪيل فائلن لاءِ ڪيش تفويض ڪرڻ جي صلاحيت شامل ڪئي وئي، هڪ الڳ FS وڻ ۾ محفوظ ڪئي وئي ۽ ڪوڊ سان ڊائريڪٽرن کان الڳ. بائيٽ ڪوڊ سان فائلن کي محفوظ ڪرڻ جو رستو متغير ذريعي مقرر ڪيو ويو آهي پٿون پائيڪيپريفڪس يا اختيار "-X pycache_prefix"؛
  • لاڳو ٿيل Python جي ڊيبگ بلڊز ٺاهڻ جي صلاحيت جيڪا رليز سان هڪجهڙائي واري ABI استعمال ڪندي آهي، جيڪا توهان کي SI ٻولي ۾ لکيل ايڪسٽينشن لوڊ ڪرڻ جي اجازت ڏئي ٿي، مستحڪم رليز لاءِ مرتب ڪيل، ڊيبگ بلڊز ۾؛
  • f-strings (Formatted literals prefixed with 'f') = آپريٽر لاءِ سپورٽ مهيا ڪن ٿا (مثال طور، "f'{expr=}'")، جيڪو توهان کي آسان ڊيبگنگ لاءِ ايڪسپريس کي ٽيڪسٽ ۾ تبديل ڪرڻ جي اجازت ڏئي ٿو. مثال طور:

    ››› استعمال ڪندڙ = 'eric_idle'
    >›› رڪن_کان = تاريخ (1975، 7، 31)
    >›› f'{user=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • اظهار“جاري»بلاڪ اندر استعمال ڪرڻ جي اجازت آخر ۾;
  • نئون ماڊل شامل ڪيو ويو multiprocessing.shared_memoryملٽي پروسيس ترتيبن ۾ گڏيل ياداشت جي حصن جي استعمال جي اجازت ڏئي ٿي؛
  • ونڊوز پليٽ فارم تي، asyncio عمل درآمد ڪلاس کي استعمال ڪرڻ لاءِ منتقل ڪيو ويو آهي ProactorEventLoop;
  • LOAD_GLOBAL ھدايت جي ڪارڪردگي تقريبن 40٪ وڌائي وئي آھي ھڪڙي نئين اعتراض ڪوڊ ڪيشنگ ميڪانيزم جي استعمال جي ڪري.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو