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

ترقي جي هڪ سال کان پوء پيش ڪيو اهم پروگرامنگ ٻولي ڇڏڻ Python 3.9. پٿون 3.9 بعد ۾ پهريون رليز هو منتقلي منصوبي تي نئون چڪر تياري ۽ رليز جي حمايت. نئين وڏي رليز هاڻي سال ۾ هڪ ڀيرو ٺاهي ويندي، ۽ اصلاحي تازه ڪاريون هر ٻن مهينن ۾ جاري ڪيا ويندا. هر اهم برانچ کي ساڍا ٽي سال مدد ڏني ويندي، ان کان پوءِ ساڍا ٽي سال ان ۾ ڪمزورين کي دور ڪرڻ لاءِ تيار ڪيو ويندو.

نئين برانچ تي ڪم ايندڙ برانچ جي جاري ٿيڻ کان پنج مهينا اڳ شروع ٿئي ٿو، يعني. Python 3.9 جي ڇڏڻ سان گڏ شروع ڪيو Python 3.10 برانچ جي الفا جاچ. Python 3.10 برانچ الفا رليز ۾ ستن مهينن لاءِ هوندي، جنهن دوران نيون خاصيتون شامل ڪيون وينديون ۽ بگ درست ڪيا ويندا. ان کان پوءِ بيٽا ورزن کي ٽن مهينن تائين آزمايو ويندو، جنهن دوران نوان فيچر شامل ڪرڻ تي پابندي هوندي ۽ سمورو ڌيان بگ کي درست ڪرڻ تي ڏنو ويندو. رليز ٿيڻ کان پهريان آخري ٻه مهينا، برانچ رليز اميدوار اسٽيج تي ٿيندي، جنهن تي حتمي استحڪام ڪيو ويندو.

انهن ۾ شامل ڪيو ويو جدت پٿون 3.9 ۾:

  • ڊڪشنري ۾ بيان ڪيل ڊڪشنري ڪلاس استعمال ڪندي، ظاهر ٿيو مرج آپريٽرز لاءِ سپورٽ "|" ۽ "|=" تازه ڪاريون، جيڪي لغتن کي ضم ڪرڻ لاءِ اڳ ۾ تجويز ڪيل {**d1، **d2} ۽ dict.update طريقن کي پورو ڪن ٿيون.

    >>> x = {"key1": "value1 from x", "key2": "value2 from x"}
    >>> y = {"key2": "value2 from y"، "key3": "value3 from y"}

    >>> x | y
    {'key1': 'value1 from x', 'key2': 'value2 from y', 'key3': 'value3 from y'}

    >>>ي | x
    {'key2': 'value2 from x', 'key3': 'value3 from y', 'key1': 'value1 from x'}

  • قسمن جي تعمير ٿيل مجموعي ۾ لسٽ، ڊڪٽ ۽ ٽوپل شامل آهن، جيڪي ٽائپنگ ماڊل مان درآمد ڪرڻ کان سواء بنيادي قسم جي طور تي استعمال ڪري سگھجن ٿيون. اهي. ٽائپنگ جي بدران. لسٽ، ٽائپنگ. ڊڪٽ ۽ ٽائپنگ. ٽوپل جيڪو توھان ھاڻي بيان ڪري سگھو ٿا
    صرف فهرست، ڊڪٽ ۽ ٽوپل:

    def greet_all(نالن: فهرست[str]) -> ڪو به نه:
    نالن ۾ نالا لاء:
    پرنٽ ("هيلو"، نالو)

  • مهيا ڪيل آهن لچڪدار اوزار تشريح فعل ۽ variables لاء. تشريحن کي ڳنڍڻ لاءِ، ٽائپنگ ماڊل ۾ هڪ نئون تشريح ٿيل قسم شامل ڪيو ويو آهي، موجوده قسمن کي وڌايو ويو اضافي ميٽاڊيٽا سان جيڪو جامد تجزيي لاءِ يا رن-ٽائم آپٽمائيزيشن لاءِ استعمال ڪري سگهجي ٿو. ڪوڊ مان ميٽا ڊيٽا تائين رسائي حاصل ڪرڻ لاءِ، include_extras پيٽرولر شامل ڪيو ويو آهي typing.get_type_hints() طريقي سان.

    charType = Annotated[int, ctype("char")] UnsignedShort = تشريح ٿيل[int, struct2.ctype('H')]

  • ٽونڊي هيٺ سجاڳيءَ لاءِ گرامر جون گهرجون - ڪنهن به اظهار لاءِ مناسب استعمال لاءِ if and while blocks هاڻي استعمال ڪري سگھجن ٿا سينگار ڪندڙ. تبديلي خاص طور تي PyQt5 ڪوڊ جي پڙهڻ جي صلاحيت کي بهتر بڻائي ڇڏيو ۽ هن ماڊل جي سار سنڀال کي آسان بڻائي ڇڏيو:

    هو:
    button_0 = بٽڻ[0] @button_0.clicked.connect

    هاڻي توهان لکي سگهو ٿا:
    @buttons[0].clicked.connect

  • معياري لائبريري ڏانهن شامل ڪيو ويو ماڊل علائقو، جنهن ۾ IANA ٽائم زون ڊيٽابيس مان معلومات شامل آهي.

    >>> zoneinfo مان ZoneInfo درآمد ڪريو
    >>> تاريخ جي وقت کان درآمد ڪريو datetime، timedelta
    >>> # اونهاري جو وقت
    >>> dt = تاريخ جو وقت(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))
    >>> پرنٽ (dt)
    2020-10-31 12:00:00-07:00

    >>> dt.tzname()
    'PDT'

    >>> # معياري وقت
    >>> ڊي ٽي += ٽائيم ڊيلٽا (ڏينهن=7)
    >>> پرنٽ (dt)
    2020-11-07 12:00:00-08:00

    >>> پرنٽ(dt.tzname())
    PST

  • شامل ڪيو ويو 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 سان لاڳاپيل موجوده عمل کان پوءِ ڪنهن ٻئي عمل سان جڙيل ٿي سگهي ٿو. ).
  • يونيڪوڊ وضاحتن لاءِ سپورٽ ورزن 13.0.0 ۾ اپڊيٽ ڪئي وئي آهي.
  • ختم ٿيل ميموري ليڪ جڏهن ساڳئي عمل ۾ پٿون مترجم کي ٻيهر شروع ڪيو وڃي.
  • تعمير ٿيل قسم جي حد، ٽوپل، سيٽ، منجمد، فهرست ۽ ڊڪٽ جي ڪارڪردگي کي بهتر ڪيو ويو آهي. لاڳو ڪيو ويو ویکٹر ڪال شارٽ ڪٽ پروٽوڪول جي استعمال ذريعي سي ٻولي ۾ لکيل شين تائين تيز پهچ لاءِ.
  • ماڊلز _abc، audioop، _bz2، _codecs، _contextvars، _crypt، _functools، _json، _locale، آپريٽر، وسيلا، وقت ۽ _weakref لوڊ ڪيا ويا آھن شروعاتي ڪيترن ئي مرحلن ۾.
  • معياري لائبريري ماڊل آڊيو اوپ، 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 جي مقابلي ۾ ڪارڪردگي جي گھٽتائي (رفتار صرف رائٽ_لوڪل ۽ لکت_ڊيڪ ٽيسٽ ۾ ڏٺو ويو آهي):

    پٿون ورزن 3.4 3.5 3.6 3.7 3.8 3.9
    ———————————

    متغير ۽ خاصيت پڙهڻ جي رسائي:
    پڙهو_ مقامي 7.1 7.1 5.4 5.1 3.9 4.0
    پڙهيل_ غير مقامي 7.1 8.1 5.8 5.4 4.4 4.8
    پڙهو_عالمي 15.5 19.0 14.3 13.6 7.6 7.7
    پڙهو_ تعمير 21.1 21.6 18.5 19.0 7.5 7.7
    پڙهو_ڪلاسوار_فرم_ڪلاس 25.6 26.5 20.7 19.5 18.4 18.6
    پڙهو_ڪلاسوار_فرم_مثال 22.8 23.5 18.8 17.1 16.4 20.1
    پڙهو_مثال 32.4 33.1 28.0 26.3 25.4 27.7
    پڙھو_انسٽانسوار_سلاٽ 27.8 31.3 20.8 20.8 20.2 24.5
    پڙهو_نالي ٽپل 73.8 57.5 45.0 46.8 18.4 23.2
    پڙھڻ_بائونڊ طريقو 37.6 37.9 29.6 26.9 27.7 45.9

    متغير ۽ خاصيت لکڻ جي رسائي:
    لکو_مقامي 8.7 9.3 5.5 5.3 4.3 4.2
    لکڻ_غير مقامي 10.5 11.1 5.6 5.5 4.7 4.9
    لکڻ_عالمي 19.7 21.2 18.0 18.0 15.8 17.2
    لکت_ڪلاسوار 92.9 96.0 104.6 102.1 39.2 43.2
    لکت_مثال 44.6 45.8 40.0 38.9 35.5 40.7
    لکت_انسٽانسوار_سلٽس 35.6 36.1 27.3 26.6 25.7 27.7

    ڊيٽا جي جوڙجڪ پڙهڻ جي رسائي:
    پڙهڻ_لسٽ 24.2 24.5 20.8 20.8 19.0 21.1
    پڙهو_ڊيڪ 24.7 25.5 20.2 20.6 19.8 21.6
    پڙهو_ڊڪٽ 24.3 25.7 22.3 23.0 21.0 22.5
    پڙهو_اسٽريڪٽ 22.6 24.3 19.5 21.2 18.9 21.6

    ڊيٽا جي جوڙجڪ لکڻ جي رسائي:
    لکڻ_لسٽ 27.1 28.5 22.5 21.6 20.0 21.6
    لکت_ڊيڪ 28.7 30.1 22.7 21.8 23.5 23.2
    لکت_ڊڪٽ 31.4 33.3 29.3 29.2 24.7 27.8
    لکت_تحقيق 28.4 29.9 27.5 25.2 23.1 29.8

    اسٽيڪ (يا قطار) آپريشن:
    list_append_pop 93.4 112.7 75.4 74.2 50.8 53.9
    deque_append_pop 43.5 57.0 49.4 49.2 42.5 45.5
    deque_append_popleft 43.7 57.3 49.7 49.7 42.8 45.5

    ٽائمنگ لوپ:
    لوپ_اوور هيڊ 0.5 0.6 0.4 0.3 0.3 0.3

  • هٽايو ويو ڪيترائي Python 2.7 افعال ۽ طريقا جيڪي اڳ ۾ ختم ڪيا ويا ۽ نتيجي ۾ اڳوڻي رليز ۾ DeprecationWarning، بشمول html.parser.HTMLParser ۾ unescape() طريقو،
    tostring() and fromstring() array.array ۾، isAlive() threading ۾.Thread، getchildren() ۽ getiterator() ElementTree ۾، sys.getcheckinterval()، sys.setcheckinterval()، asyncio.Task.current_task()، asyncio.Task.all_tasks()، base64.encodestring() ۽ base64.decodestring().

جو ذريعو: opennet.ru

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