ترقي جي هڪ سال کان پوء پيش ڪيو اهم پروگرامنگ ٻولي ڇڏڻ Python 3.9. پٿون 3.9 بعد ۾ پهريون رليز هو منتقلي منصوبي تي نئون چڪر تياري ۽ رليز جي حمايت. نئين وڏي رليز هاڻي سال ۾ هڪ ڀيرو ٺاهي ويندي، ۽ اصلاحي تازه ڪاريون هر ٻن مهينن ۾ جاري ڪيا ويندا. هر اهم برانچ کي ساڍا ٽي سال مدد ڏني ويندي، ان کان پوءِ ساڍا ٽي سال ان ۾ ڪمزورين کي دور ڪرڻ لاءِ تيار ڪيو ويندو.
نئين برانچ تي ڪم ايندڙ برانچ جي جاري ٿيڻ کان پنج مهينا اڳ شروع ٿئي ٿو، يعني. Python 3.9 جي ڇڏڻ سان گڏ شروع ڪيو Python 3.10 برانچ جي الفا جاچ. Python 3.10 برانچ الفا رليز ۾ ستن مهينن لاءِ هوندي، جنهن دوران نيون خاصيتون شامل ڪيون وينديون ۽ بگ درست ڪيا ويندا. ان کان پوءِ بيٽا ورزن کي ٽن مهينن تائين آزمايو ويندو، جنهن دوران نوان فيچر شامل ڪرڻ تي پابندي هوندي ۽ سمورو ڌيان بگ کي درست ڪرڻ تي ڏنو ويندو. رليز ٿيڻ کان پهريان آخري ٻه مهينا، برانچ رليز اميدوار اسٽيج تي ٿيندي، جنهن تي حتمي استحڪام ڪيو ويندو.
ٽونڊي هيٺ سجاڳيءَ لاءِ گرامر جون گهرجون - ڪنهن به اظهار لاءِ مناسب استعمال لاءِ if and while blocks هاڻي استعمال ڪري سگھجن ٿا سينگار ڪندڙ. تبديلي خاص طور تي PyQt5 ڪوڊ جي پڙهڻ جي صلاحيت کي بهتر بڻائي ڇڏيو ۽ هن ماڊل جي سار سنڀال کي آسان بڻائي ڇڏيو:
معياري لائبريري ڏانهن شامل ڪيو ويو ماڊل علائقو، جنهن ۾ IANA ٽائم زون ڊيٽابيس مان معلومات شامل آهي.
>>> zoneinfo مان ZoneInfo درآمد ڪريو
>>> تاريخ جي وقت کان درآمد ڪريو datetime، timedelta
>>> # اونهاري جو وقت
>>> dt = تاريخ جو وقت(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
>>> پرنٽ (dt)
2020-10-31 12:00:00-07:00
شامل ڪيو ويو graphlib ماڊل، جنهن ۾ لاڳو ڪيو ويو گرافس جي topological ترتيب ڏيڻ جي حمايت.
تجويز ڪيل اڳياڙين ۽ لڪير جي پڇاڙين کي ختم ڪرڻ جا نوان طريقا - str.removeprefix(prefix) ۽ str.removesuffix(suffix). str، bytes، bytearray ۽ collections.UserString شيون ۾ طريقا شامل ڪيا ويا آھن.
>>> s = "FooBar"
>>> s.removeprefix("Foo")
'بار'
ملوث نئون پارسر پگ (Parsing Expression Grammar)، جنهن ۾ parser کي تبديل ڪيو ويو ايل ايل (1). نئين پارسر جي استعمال کي ممڪن بڻايو ويو ته ڪجھ "هيڪ" مان نجات حاصل ڪرڻ لاءِ استعمال ٿيل پابندين کي نظرانداز ڪرڻ لاءِ ايل ايل (1)، ۽ خاص طور تي پارسر کي برقرار رکڻ لاءِ مزدورن جي قيمتن کي گھٽائي ڇڏيو. ڪارڪردگي جي لحاظ کان، نئون پارسر لڳ ڀڳ ساڳئي سطح تي آهي جيئن اڳئين، پر لچڪ جي لحاظ کان ان کان گهڻو اڳتي آهي، جيڪو توهان کي وڌيڪ آزاد محسوس ڪرڻ جي اجازت ڏئي ٿو جڏهن نئين ٻوليء جي خاصيتن کي ڊزائين ڪرڻ. پراڻو پارسر ڪوڊ ھاڻي لاءِ رکيو ويو آھي ۽ واپس ڪري سگھجي ٿو "-X oldparser" جھنڊو يا "PYTHONOLDPARSER=1" ماحولي تبديلي، پر رليز 3.10 ۾ ختم ڪيو ويندو.
مهيا ڪيل C extension طريقن جي صلاحيت ماڊيول جي حالت تائين رسائي حاصل ڪرڻ لاءِ جنهن ۾ اهي PyState_FindModule فنڪشن استعمال ڪندي ماڊل اسٽيٽ کي ڳولڻ بدران سڌو پوائنٽر ڊيريفرنس استعمال ڪندي وضاحت ڪئي وئي آهي. تبديلي توهان کي سي ماڊلز جي ڪارڪردگي کي وڌائڻ جي اجازت ڏئي ٿي ماڊل اسٽيٽ کي چيڪ ڪرڻ جي اوور هيڊ کي گهٽائڻ يا مڪمل طور تي ختم ڪندي. ماڊل کي ڪلاس سان ڳنڍڻ لاءِ، C-function PyType_FromModuleAndSpec() تجويز ڪيل آهي، ماڊل ۽ ان جي حالت حاصل ڪرڻ لاءِ، C-functions PyType_GetModule() ۽ PyType_GetModuleState() تجويز ڪيل آهن، ۽ ڪلاس مهيا ڪرڻ جو طريقو. جنهن ۾ اها وضاحت ڪئي وئي آهي، سي-فنڪشن PyCMethod ۽ METH_METHOD پرچم تجويز ڪيل آهن. .
ڪچرو گڏ ڪندڙ پهچائڻ لاڪ ڪرڻ واري مجموعن مان جن ۾ ٻيهر متحرڪ شيون شامل آهن جيڪي فائنلائزر جي هلڻ کان پوءِ خارجي طور تي پهچن ٿيون.
شامل ڪيل طريقو os.pidfd_open، جيڪا اجازت ڏئي ٿي لينڪس ڪنيل سب سسٽم "pidfd" کي PID جي ٻيهر استعمال جي صورتحال کي سنڀالڻ لاءِ استعمال ڪيو وڃي (pidfd هڪ مخصوص عمل سان جڙيل آهي ۽ تبديل نٿو ٿئي، جڏهن ته PID ان PID سان لاڳاپيل موجوده عمل کان پوءِ ڪنهن ٻئي عمل سان جڙيل ٿي سگهي ٿو. ).
معياري لائبريري ماڊل آڊيو اوپ، ast، grp، _hashlib، pwd، _posixsubprocess، random، select، struct، termios ۽ zlib کي محدود استعمال ڪرڻ لاءِ تبديل ڪيو ويو آھي مستحڪم ABI، جيڪو پٿون جي مختلف ورزن لاءِ ايڪسٽينشن ماڊلز جي اسيمبلين جي آپريشنليت جو مسئلو حل ڪري ٿو (جڏهن ورجن کي اپڊيٽ ڪيو وڃي ته ايڪسٽينشن ماڊلز کي ٻيهر ٺاهڻ جي ڪا ضرورت ناهي، ۽ 3.9 لاءِ مرتب ڪيل ماڊلز 3.10 برانچ ۾ ڪم ڪرڻ جي قابل هوندا).
asyncio module reuse_address parameter لاءِ حمايت کي ختم ڪري ڇڏيو آھي امڪاني حفاظتي مسئلن جي ڪري (لينڪس تي UDP لاءِ SO_REUSEADDR استعمال ڪرڻ مختلف عملن کي اجازت ڏئي ٿو ٻڌڻ واري ساکٽ کي UDP پورٽ سان ڳنڍڻ لاءِ).
نيون اصلاحون شامل ڪيون ويون آهن، مثال طور، ملٽي ٿريڊ ٿيل ايپليڪيشنن ۾ سگنل هينڊلر جي بهتر ڪارڪردگي، فري بي ايس ڊي ماحول ۾ ذيلي پروسيس ماڊل جي رفتار کي وڌايو، ۽ عارضي متغيرن جي تيز تفويض (اظهار ۾ هڪ متغير کي تفويض ڪرڻ "جي لاءِ y ۾ [expr. ]" ھاڻي آھي پرفارمنس جي طور تي اظهار "y = expr" "). عام طور تي، اڪثر ٽيسٽ ڏيکاريو برانچ 3.8 جي مقابلي ۾ ڪارڪردگي جي گھٽتائي (رفتار صرف رائٽ_لوڪل ۽ لکت_ڊيڪ ٽيسٽ ۾ ڏٺو ويو آهي):