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

د یو نیم کال پرمختګ وروسته وړاندې شوی د لوی پروګرامینګ ژبې خپرول پیټون 3.8. د Python 3.8 څانګې لپاره اصلاحي تازه معلومات پلان شوی په 18 میاشتو کې خوشې کول. جدي زیانونه به د 5 کلونو لپاره د اکتوبر 2024 پورې ټاکل کیږي. د 3.8 څانګې لپاره اصلاحي تازه معلومات به په هرو دوه میاشتو کې خپاره شي ، د پایتون 3.8.1 لومړۍ اصلاحي خوشې کیدو سره به د دسمبر لپاره ټاکل شوي.

د اضافه شویو په منځ کې نوښتونه:

  • ملاتړ په پیچلو بیانونو کې د ګمارنې عملیات. د نوي ":=" آپریټر سره، دا ممکنه ده چې په نورو بیانونو کې د ارزښت د تفویض عملیات ترسره کړئ، د بیلګې په توګه، په مشروط بیانونو کې د دوه ګونی فنکشن کالونو څخه مخنیوی کول او کله چې لوپ تعریف کړئ:

    که (n := len(a)) > 10:
    ...

    پداسې حال کې چې (block := f.read(256)) != ":
    ...

  • ملاتړ د فنکشن دلیلونو مشخص کولو لپاره نوی ترکیب. کله چې د فنکشن تعریف په جریان کې دلیلونه شمیرل کیږي ، تاسو اوس کولی شئ د جلا دلیلونو لپاره "/" مشخص کړئ چې یوازې د هغه ترتیب پراساس ارزښتونه ټاکل کیدی شي چې د فنکشن کال په جریان کې ارزښتونه شمیرل کیږي ، له هغه دلیلونو څخه چې ټاکل کیدی شي. په هر ترتیب کې (متغیر = ارزښت نحو)). په عملي اړخ کې ، نوې ب featureه په Python کې افعال ته اجازه ورکوي چې په C کې د موجوده افعالاتو چلند په بشپړ ډول تقلید کړي ، او همدارنګه د ځانګړو نومونو له پابندۍ څخه مخنیوی وکړي ، د مثال په توګه ، که چیرې د پیرامیټر نوم په راتلونکي کې د بدلولو پلان شوی وي.

    د "/" بیرغ د مخکینۍ اضافه شوي "*" بیرغ بشپړوي، متغیرونه جلا کوي چې د "متغیر = ارزښت" په بڼه کې یوازې یوه دنده د تطبیق وړ ده. د مثال په توګه، په فنکشن کې "def f(a, b, /, c, d, *, e, f):" متغیرات "a" او "b" یوازې په ترتیب کې ټاکل کیدی شي چې ارزښتونه لیست شوي وي ,
    متغیرونه "e" او "f"، یوازې د دندې "متغیر = ارزښت" له لارې، او متغیرونه "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 ژبه کې لیکل شوي شیانو ته د ګړندي لاسرسي لپاره نوی ویکتورکال پروتوکول. په CPython 3.8 کې، Vectorcall ته لاسرسی لاهم د داخلي کارونې پورې محدود دی؛ د عامه لاسرسي وړ APIs کټګورۍ ته لیږدول په CPython 3.9 کې پلان شوي؛
  • زیاته کړه د Runtime Audit Hooks ته زنګ وهي، کوم چې په Python کې غوښتنلیکونه او چوکاټونه چمتو کوي چې د سکریپټ پرمختګ په اړه د ټیټ کچې معلوماتو ته لاسرسی ولري ترڅو د ترسره شوي کړنو پلټنه وکړي (د مثال په توګه، تاسو کولی شئ د ماډلونو واردات تعقیب کړئ، د فایلونو پرانیستل، د ټریس په کارولو سره، د شبکې ساکټونو ته لاسرسی، د exec، eval او run_mod له لارې کوډ چلول؛
  • په ماډل کې اچار چمتو شوی د Pickle 5 پروتوکول لپاره ملاتړ، د شیانو د سیریل کولو او بې ترتیب کولو لپاره کارول کیږي. Pickle تاسو ته اجازه درکوي د Python پروسې تر مینځ د ډیټا لوی مقدار لیږد په ملټي کور او ملټي نوډ ترتیبونو کې د حافظې کاپي عملیاتو شمیر کمولو او د اضافي مطلوب تخنیکونو پلي کولو سره لکه د ډیټا ځانګړي کمپریشن الګوریتمونو کارولو سره مطلوب کړئ. د پروتوکول پنځمه نسخه د بینډ څخه بهر لیږدونې حالت اضافه کولو لپاره د پام وړ دی ، په کوم کې چې ډاټا د اصلي اچار جریان څخه جلا لیږدول کیدی شي.
  • د ډیفالټ په واسطه، د Pickle پروتوکول څلورم نسخه فعاله شوې، کوم چې د دریمې نسخې په پرتله چې مخکې د ډیفالټ لخوا وړاندیز شوي، د لوړ فعالیت او د لیږد شوي معلوماتو اندازې کمولو ته اجازه ورکوي؛
  • په ماډل کې ٹائپ کول ډیری نوي ځانګړتیاوې معرفي شوي:
    • کللس TypedDict د ملګري صفونو لپاره په کوم کې چې ډول معلومات په ښکاره ډول د کیلي سره تړلي ډیټا لپاره مشخص شوي ("TypedDict('Point2D', x=int, y=int, label=str)").
    • ډول ادبي، کوم چې تاسو ته اجازه درکوي یو پیرامیټر محدود کړئ یا یو څو دمخه ټاکل شوي ارزښتونو ته ارزښت بیرته ورکړئ ("لفظي['وصل شوی' ، 'منقطع']").
    • ډیزاین "وروستۍ"، کوم چې دا ممکنه کوي چې د متغیرونو، دندو، میتودونو او ټولګیو ارزښتونه تعریف کړي چې نشي بدلیدلی یا بیا ځای پرځای شي ("pi: Final[float] = 3.1415926536").
  • د بایټ کوډ سره د مرتب شوي فایلونو لپاره د کیچ ټاکلو وړتیا اضافه کړه ، په جلا FS ونې کې خوندي شوی او د کوډ سره لارښودونو څخه جلا شوی. د بایټ کوډ سره د فایلونو خوندي کولو لاره د متغیر له لارې ټاکل شوې PYTHONPYCACHEPREFIX یا اختیار "-X pycache_prefix"؛
  • پلي شوي د Python د ډیبګ جوړونې رامینځته کولو وړتیا چې د خوشې کیدو سره ورته ABI کاروي ، کوم چې تاسو ته اجازه درکوي په SI ژبه کې لیکل شوي توسیعونه پورته کړئ ، د مستحکم ریلیزونو لپاره ترتیب شوي ، په ډیبګ جوړونو کې؛
  • f-strings (د '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

Add a comment