د Python 3.10 پروګرام کولو ژبه خپرول

د یو کال پراختیا وروسته، د Python 3.10 پروګرام کولو ژبه د پام وړ خوشې کول وړاندې کیږي. نوې څانګه به د یو نیم کال لپاره ملاتړ کوي او وروسته به د نورو درې نیمو کلونو لپاره د زیانونو د له منځه وړلو لپاره اصلاحات رامینځته کړي.

په ورته وخت کې ، د Python 3.11 څانګې الفا ټیسټ پیل شو (د نوي پراختیایی مهالویش سره سم ، په نوې څانګه کې کار د پخوانۍ څانګې خوشې کیدو څخه پنځه میاشتې دمخه پیل کیږي او د راتلونکي خوشې کیدو په وخت کې د الفا ازموینې مرحلې ته رسي. ). د Python 3.11 څانګه به د اوو میاشتو لپاره په الفا ریلیز کې وي، چې په ترڅ کې به یې نوې بڼې اضافه شي او بګونه به حل شي. له دې وروسته به د بیټا نسخې درې میاشتې ازمویل شي، چې په ترڅ کې به یې د نویو فیچرونو اضافه کول منع وي او ټول پام به د بګونو اصلاح ته ورکول کیږي. د خوشې کیدو څخه دمخه د تیرو دوه میاشتو لپاره، څانګه به د خوشې کیدو امیدوار مرحله کې وي، په کوم کې چې وروستی ثبات به ترسره شي.

په پایتون 3.10 کې نوي اضافه کول شامل دي:

  • د نمونې میچ کولو لپاره "میچ" او "کیس" آپریټرونه پلي شوي، کوم چې د کوډ لوستلو وړتیا ښه کوي، د خپل سري Python شیانو میچ کول ساده کوي، او د پرمختللي جامد ډول چک کولو له لارې د کوډ اعتبار زیاتوي. تطبیق د "میچ" آپریټر په څیر دی چې په سکالا، روسټ، او F# کې چمتو شوي، کوم چې د "کیس" آپریټر پراساس په بلاکس کې د لیست شوي نمونو لیست سره د ټاکل شوي بیان پایلې پرتله کوي.

    def http_error(status): د میچ حالت: قضیه 400: د "خراب غوښتنې" قضیه بیرته راستنیدل

    تاسو کولی شئ د موجوده ارزښتونو پراساس د متغیرونو تړلو لپاره توکي ، ټپلونه ، لیستونه او خپلمنځي ترتیبونه خلاص کړئ. دا اجازه لري چې د ځړول شوي ټیمپلیټونه تعریف کړي، په ټیمپلیټ کې اضافي "که" شرایط وکاروئ، ماسکونه وکاروئ ("[x، y، * آرام]")، کلیدي/ ارزښت نقشه (د مثال په توګه، {"بینډ ویت": b، "لطابق ": l} د لغت څخه د "بند ویت" او "لطیف" ارزښتونو ایستلو لپاره)، فرعي ټیمپلیټونه استخراج کړئ (": =" آپریټر)، په ټیمپلیټ کې نومول شوي ثابتونه وکاروئ. په ټولګیو کې، دا ممکنه ده چې د "__match__()" میتود په کارولو سره د سمون چلند دودیز کړئ.

    د ډیټاکلاسونو څخه د ډیټاکلاس وارد کړئ @dataclass ټولګي نقطه: x: int y: int def whereis(point): د میچ نقطه: د قضیې نقطه(0, 0): چاپ ("اصلي") قضیه نقطه (0, y): چاپ (f" Y={y}") د قضیې نقطه(x, 0): چاپ (f"X={x}") د قضیې نقطه (): چاپ ("بل ځای") قضیه _: چاپ ("پوائنټ نه دی") میچ نقطه: د قضیې نقطه(x، y) که x == y: چاپ (f"Y=X په {x}") قضیه نقطه (x, y): چاپ (f"په ډیګونال کې نه") سور، شنه، نیلي = 0, 1, 2 د میچ رنګ: قضیه سور: چاپ ("زه سور وینم!") قضیه شنه: چاپ ("واښه شنه ده") قضیه نیلي: چاپ ("زه د بلوز احساس کوم :(")

  • اوس دا ممکنه ده چې په بیان کې قوس وکاروئ ترڅو د شرایطو مدیرانو ټولګه تعریف په څو کرښو کې وویشئ. دا هم اجازه لري چې په ګروپ کې د وروستي شرایطو مدیر وروسته کوما پریږدي: د ( CtxManager1() د مثال په توګه 1، CtxManager2() د مثال په توګه 2، CtxManager3() د مثال په توګه 3، ): ...
  • د تار په لیکو کې د نه تړل شوي بندونو او نرخونو پورې اړوند د غلطیو د کوډ موقعیت ښه راپور ورکول. د مثال په توګه، کله چې یو تړل شوی تسمه شتون ولري، د دې پرځای چې په لاندې ساختمان کې د نحوي تېروتنې راپور ورکړي، پوائنټر اوس د پرانیستې کنډک روښانه کوي او په ګوته کوي چې هیڅ تړلی بلاک شتون نلري. دوتنه "example.py"، کرښه 1 تمه کیږي = {9:1، 18:2، 19:2، 27:3، 28:3، 29:3، 36:4، 37:4، ^SyntaxError: '{' هیڅکله تړل شوی نه و

    اضافي تخصصي نحوي خطا پیغامونه اضافه کړل: د بلاک څخه مخکې او په لغتونو کې د ":" سمبول ورکول، د قوسونو سره د ټپل نه جلا کول، په لیستونو کې د کوما نشتوالی، د "پرته" او "په پای کې" کارولو پرته د "کوشش" بلاک مشخص کول د "پر ځای" = =" په پرتله، په f-strings کې *-expressions مشخص کول. برسېره پر دې، دا ډاډه کوي چې ټوله ستونزه لرونکی بیان روښانه شوی، نه یوازې پیل، او د غلط نښه کولو سره تړلې د غلطیو شرایطو په اړه نور روښانه معلومات. >>> def foo(): ... که lel: ... x = 2 فایل " "، کرښه 3 x = 2 ^ Indentation Error: په 2 کرښه کې د 'if' بیان وروسته د یو نښه شوي بلاک تمه

    په فنکشن کې د صفاتو او متغیر نومونو په نومونو کې د ټایپونو له امله رامینځته شوي غلطیو کې ، د سم نوم سره وړاندیز محصول دی. >>>collections.namedtoplo Traceback (وروستی وروستی کال): دوتنه « "، کرښه 1، په AttributeError: module 'collections' هیڅ خاصیت نلري 'namedtoplo'. ایا ستاسو مطلب دا دی: نومول شوی ټوپ؟

  • د ډیبګ کولو وسیلو او پروفایلرونو لپاره ، ټریس پیښې د اجرا شوي کوډ دقیق لاین شمیرې سره چمتو شوي.
  • د sys.flags.warn_default_encoding ترتیب اضافه شوی ترڅو د TextIOWrapper او open() پروسس کولو UTF-8 کوډ شوي فایلونو سره تړلي احتمالي غلطیو په اړه خبرداری ښکاره کړي پرته له دې چې په واضح ډول د 'encoding=»utf-8″ اختیار مشخص کړي (ASCII کوډ کول په ډیفالټ کارول کیږي) . نوې خپرونه د اوسني ځای پراساس د کوډ کولو تنظیم کولو لپاره د 'encoding="locale"' ارزښت مشخص کولو وړتیا هم چمتو کوي.
  • د ټایپ کولو ماډل کې یو نوی آپریټر اضافه شوی، کوم چې د ډول تشریحاتو مشخص کولو لپاره وسایل چمتو کوي، د نحو کارولو اجازه ورکوي "X | Y" د یو ډول غوره کولو لپاره (X ډول یا Y ډول). def مربع (نمبر: int | فلوټ) -> int | float: د راستنیدو شمیره ** 2 د مخکینۍ ملاتړ شوي ساختمان سره مساوي ده: def مربع( شمیره: اتحادیه[int، float]) -> Union[int, float]: د بیرته ستنیدو شمیره ** 2
  • د Concatenate آپریټر او ParamSpec متغیر د ټایپ کولو ماډل کې اضافه شوي، کوم چې تاسو ته اجازه درکوي چې د کال ایبل کارولو په وخت کې د جامد ډول چک کولو لپاره اضافي معلومات انتقال کړئ. د ټایپ کولو ماډل هم د ډول محافظت افعال تشریح کولو لپاره ټایپ ګارډ ځانګړي ارزښتونه اضافه کوي او ټایپ الیاس په روښانه ډول د ډول عرف تعریف کولو لپاره. StrCache: TypeAlias ​​= 'کیچ[str]' # یو ډول عرف
  • د zip() فنکشن یو اختیاري "سخت" بیرغ پلي کوي، کوم چې، کله چې مشخص شي، ګوري چې ایا تکرار شوي دلیلونه ورته اوږدوالی لري. >>> لیست(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2) , ('c', 3)] >>> لیست(zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True)) Traceback (وروستی وروستی کال ): … ValueError: zip() دلیل 2 د دلیل 1 څخه اوږد دی
  • نوي جوړ شوي فنکشنونه aiter() او anext() د فنکشن iter() او next() ته د غیر متناسب انلاګونو پلي کولو سره وړاندیز شوي.
  • د str(), bytes() او bytearray() جوړونکو کار کله چې د کوچنیو شیانو سره کار کوي د 30-40٪ لخوا ګړندی شوی.
  • په رنپي ماډل کې د وارداتو عملیاتو شمیر کم شوی. کمانډ "python3 -m module_name" اوس په اوسط ډول 1.4 ځله ګړندی چلیږي له 69 څخه 51 ته د وارد شوي ماډلونو کمولو له امله.
  • د LOAD_ATTR لارښوونې د انفرادي اپکوډونو لپاره د کیچ کولو میکانیزم کاروي، کوم چې دا ممکنه کړې چې د منظم ځانګړتیاو سره تر 36٪ پورې کار چټک کړي، او د سلاټونو سره تر 44٪ پورې.
  • کله چې د "--enable-optimizations" اختیار سره Python جوړ کړئ، د "-fno-semantic-interposition" حالت اوس فعال شوی، کوم چې د "-enable-shared" سره د جوړولو په پرتله تر 30٪ پورې د ژباړونکي سرعت ته اجازه ورکوي. اختیار.
  • د هشلیب او ایس ایس ایل ماډلونو د OpenSSL 3.0.0 لپاره ملاتړ اضافه کړی او د 1.1.1 څخه زاړه د OpenSSL نسخو ملاتړ یې بند کړی.
  • زوړ پارسر لرې شوی، کوم چې په پخوانۍ څانګه کې د PEG (Parsing Expression Grammar) پارسر لخوا ځای په ځای شوی و. د فارمیټر ماډل لیرې شوی. د لوپ پیرامیټر د asyncio API څخه لیرې شوی دی. هغه میتودونه چې مخکې له مینځه وړل شوي وو لیرې شوي. د Py_UNICODE_str* افعال چې د Py_UNICODE* تارونه سمبالوي لرې شوي دي.
  • د distutils ماډل رد شوی او په Python 3.12 کې د لرې کولو لپاره ټاکل شوی. د distutils پرځای، دا سپارښتنه کیږي چې د سیټ اپ اوزار، بسته بندي، پلیټ فارم، شټل، سب پروسس او sysconfig ماډلونه وکاروئ. په PyUnicodeObject کې د wstr جوړښت تخریب شوی او د لرې کولو لپاره ټاکل شوی.

سرچینه: opennet.ru

Add a comment