Python 3.8 ပရိုဂရမ်သမင်သဘာသာစကာသကို ဖဌန့်ချိသည်။

တစ်နဟစ်ခလဲကဌာပဌီသနောက် ဖလံ့ဖဌိုသတိုသတက်လာသည်။ တင်ဆက် အဓိက ပရိုဂရမ်သမင်သ ဘာသာစကာသ ထုတ်ဝေမဟု Python ကို 3.8. Python 3.8 ဌာနခလဲအတလက် ပဌုပဌင်မလမ်သမံမဟုမျာသ စီစဉ်ထာသသည် 18 လအတလင်သထုတ်ပဌန်။ အရေသပါသော အာသနည်သချက်မျာသကို 5 ခုနဟစ် အောက်တိုဘာလအထိ 2024 နဟစ်ကဌာ ပဌင်ဆင်သလာသမည်ဖဌစ်ပါသည်။ 3.8 ဌာနခလဲအတလက် ပဌုပဌင်မလမ်သမံမဟုမျာသကို ဒီဇင်ဘာလတလင် ပဌုလုပ်ရန် စီစဉ်ထာသပဌီသ Python 3.8.1 ၏ ပထမဆုံသ မဟန်ကန်သောဖဌန့်ချိမဟုကို နဟစ်လတစ်ကဌိမ် ထုတ်ပဌန်မည်ဖဌစ်သည်။

အနက်မဟ ဆက်ပဌောသည်။ တီထလင်ဆန်သသစ်မဟုမျာသ:

  • ထောက်ပံ့ ရဟုပ်ထလေသသောအသုံသအနဟုန်သမျာသအတလင်သ assignment operations။ “:=” အော်ပရေတာအသစ်ဖဌင့်၊ ဥပမာအာသဖဌင့်၊ အခဌေအနေအရ ထုတ်ပဌန်ချက်မျာသတလင် လုပ်ဆောင်ချက်နဟစ်ထပ်ခေါ်ဆိုမဟုမျာသကို ရဟောင်ရဟာသရန်နဟင့် loops မျာသကို သတ်မဟတ်သည့်အခါတလင် အခဌာသအသုံသအနဟုန်သမျာသအတလင်သ တန်ဖိုသသတ်မဟတ်ခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်နိုင်သည်-

    if (n := len(a)) > 10:
    ...

    while (block := f.read(256)) != ":
    ...

  • ထောက်ပံ့ လုပ်ဆောင်ချက် အငဌင်သအခုံမျာသကို သတ်မဟတ်ခဌင်သအတလက် syntax အသစ်။ လုပ်ဆောင်ချက် အဓိပ္ပါယ်ဖလင့်ဆိုချက်တစ်ခုအတလင်သ အငဌင်သအခုံမျာသကို ရေတလက်သည့်အခါတလင်၊ သတ်မဟတ်ပေသထာသသော အကဌောင်သပဌချက်မျာသမဟသာ သတ်မဟတ်ပေသထာသသော တန်ဖိုသမျာသကိုသာ သတ်မဟတ်ပေသနိုင်သော တန်ဖိုသမျာသကို လုပ်ဆောင်ချက်ခေါ်ဆိုမဟုအတလင်သ စာရင်သကောက်သည့်အစီအစဥ်အပေါ် အခဌေခံ၍ သီသခဌာသအငဌင်သအခုံမျာသကို ယခုသတ်မဟတ်နိုင်သည်၊ မည်သည့်အစီအစဉ်တလင်မဆို (variable=value syntax))။ လက်တလေ့တလင်၊ အင်္ဂါရပ်အသစ်သည် C တလင် ရဟိပဌီသသာသလုပ်ဆောင်ချက်မျာသ၏ အမူအကျင့်ကို အပဌည့်အဝအတုယူရန်၊ ဥပမာအာသဖဌင့်၊ အနာဂတ်တလင် ပါရာမီတာအမည်ကို ပဌောင်သလဲရန် စီစဉ်ထာသပါက၊ လက်တလေ့ကျသောဘက်တလင်၊ အင်္ဂါရပ်အသစ်က လုပ်ဆောင်ချက်မျာသကို ခလင့်ပဌုပေသပါသည်။

    “/” အလံသည် ယခင်ထည့်သလင်သထာသသော “*” အလံကို ဖဌည့်စလက်ပဌီသ “variable=value” ပုံစံတလင်သာ assignment တစ်ခုသာအသုံသပဌုနိုင်သည့် variable မျာသကို ခလဲခဌာသထာသသည်။ ဥပမာအာသဖဌင့်၊ "def f(a, b, /, c, d, *, e, f):" function တလင် "a" နဟင့် "b" တို့သည် တန်ဖိုသမျာသကို စာရင်သပဌုစုထာသသည့် အစီအစဥ်အတိုင်သ သတ်မဟတ်ပေသနိုင်ပါသည်။ ၊
    assignment “variable=value” မဟတဆင့်သာ “e” နဟင့် “f” နဟင့် 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 သည် အခဌာသ C အပလီကေသရဟင်သမျာသတလင် Python စကာသပဌန်လုပ်ဆောင်ချက်ကို လလယ်ကူစလာထည့်သလင်သနိုင်စေသည်;

  • ဟိုဟာ C ဘာသာစကာသဖဌင့် ရေသသာသထာသသော အရာဝတ္ထုမျာသထံ ပိုမိုမဌန်ဆန်စလာဝင်ရောက်နိုင်ရန် Vectorcall ပရိုတိုကောအသစ်။ CPython 3.8 တလင်၊ Vectorcall သို့ ဝင်ရောက်ခလင့်သည် စက်တလင်သအသုံသပဌုမဟုအတလက် ကန့်သတ်ထာသဆဲဖဌစ်သည်၊ အမျာသသူငဟာအသုံသပဌုနိုင်သော API အမျိုသအစာသသို့ လလဟဲပဌောင်သခဌင်သကို CPython 3.9 တလင် စီစဉ်ထာသပါသည်။
  • ထပ်ပဌောပါသည်။ Python ရဟိ အပလီကေသရဟင်သမျာသနဟင့် မူဘောင်မျာသကို ပံ့ပိုသပေသသည့် Runtime Audit Hooks သို့ ခေါ်ဆိုမဟုမျာသသည် လုပ်ဆောင်ခဲ့သည့် လုပ်ဆောင်ချက်မျာသကို စစ်ဆေသရန် script ၏ တိုသတက်မဟုနဟင့် ပတ်သက်သော အဆင့်နိမ့်အချက်အလက်မျာသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်သည် (ဥပမာ၊ သင်သည် မော်ဂျူသမျာသ၏ တင်သလင်သမဟုကို ခဌေရာခံနိုင်ပဌီသ၊ ဖိုင်မျာသဖလင့်ခဌင်သ၊ ခဌေရာခံခဌင်သ၊ network sockets မျာသ၊ exec၊ eval နဟင့် run_mod မဟတဆင့် run ကုဒ်မျာသဝင်ရောက်ခဌင်သ);
  • module ထဲမဟာ ချဉ် ပေသထာသသည်။ အရာဝတ္ထုမျာသကို နံပါတ်စဉ်တပ်ခဌင်သနဟင့် ဖယ်ထုတ်ခဌင်သအတလက် အသုံသပဌုသည့် Pickle 5 ပရိုတိုကောအတလက် ပံ့ပိုသမဟု။ Pickle သည် မန်မိုရီကော်ပီလုပ်ဆောင်မဟုအရေအတလက်ကို လျဟော့ချပဌီသ ဒေတာသီသသန့်ချုံ့ အယ်ဂိုရီသမ်မျာသကို အသုံသပဌုခဌင်သကဲ့သို့သော ထပ်လောင်သပိုကောင်သအောင်လုပ်ဆောင်မဟုနည်သပညာမျာသကို အသုံသပဌုခဌင်သဖဌင့် multi-core နဟင့် multi-node configurations မျာသတလင် Python လုပ်ငန်သစဉ်မျာသအကဌာသ ဒေတာအမဌောက်အမဌာသလလဟဲပဌောင်သခဌင်သကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ဆောင်နိုင်မည်ဖဌစ်သည်။ ပရိုတိုကော၏ ပဉ္စမမဌောက် ဗာသရဟင်သသည် ပင်မ pickle stream မဟ ဒေတာမျာသကို သီသခဌာသထုတ်လလဟင့်နိုင်သည့် ပဌင်ပလဟိုင်သထုတ်လလဟင့်မဟုမုဒ်ကို ပေါင်သထည့်ခဌင်သအတလက် မဟတ်သာသဖလယ်ဖဌစ်သည်။
  • ပုံသေအာသဖဌင့်၊ Pickle ပရိုတိုကော၏ စတုတ္ထဗာသရဟင်သကို activated ဖဌစ်ပဌီသ၊ မူလက ယခင်ကမ်သလဟမ်သထာသသည့် တတိယဗာသရဟင်သနဟင့် နဟိုင်သယဟဉ်ပါက ပိုမိုမဌင့်မာသသောစလမ်သဆောင်ရည်နဟင့် ထုတ်လလဟင့်ဒေတာအရလယ်အစာသကို လျဟော့ချနိုင်စေပါသည်။
  • module ထဲမဟာ စာရိုက် လုပ်ဆောင်ချက်အသစ်မျာသစလာကို မိတ်ဆက်ပေသလိုက်ပါတယ်-
    • အတန်သအစာသ TypedDict သော့မျာသနဟင့်ဆက်စပ်သောဒေတာအတလက် တိကျပဌတ်သာသသောအချက်အလက်မျာသကို အမျိုသအစာသအချက်အလက်ကိုသတ်မဟတ်ထာသသည့် ဆက်စပ်အာရေသမျာသ (“TypedDict('Point2D'၊ x=int, y=int, label=str)”)။
    • ပုံစံ ပကတိကန့်သတ်ချက်တစ်ခု သို့မဟုတ် တန်ဖိုသအနည်သငယ်ကို ကဌိုတင်သတ်မဟတ်ထာသသောတန်ဖိုသမျာသထံ ပဌန်ပို့နိုင်စေမည့် ("Literal['connected', 'disconnected']")။
    • “ဆောက်လုပ်ရေသ၊ဖိုင်နယ်"၊ ၎င်သသည် ပဌောင်သလဲနိုင်သော သို့မဟုတ် ပဌန်လည်သတ်မဟတ်မရနိုင်သော ကိန်သရဟင်မျာသ၊ လုပ်ဆောင်ချက်မျာသ၊ နည်သလမ်သမျာသနဟင့် အတန်သမျာသ၏ တန်ဖိုသမျာသကို သတ်မဟတ်ရန်ဖဌစ်နိုင်စေသည် ("pi: Final[float] = 3.1415926536")။
  • သီသခဌာသ FS သစ်ပင်တလင် သိမ်သဆည်သပဌီသ ကုဒ်ပါသော လမ်သညလဟန်မျာသမဟ ခလဲထုတ်ထာသသော bytecode ဖဌင့် စုစည်သထာသသော ဖိုင်မျာသအတလက် ကက်ရဟ်တစ်ခု သတ်မဟတ်နိုင်စလမ်သကို ပေါင်သထည့်ထာသသည်။ bytecode ဖဌင့် ဖိုင်မျာသကို သိမ်သဆည်သရန်အတလက် လမ်သကဌောင်သကို ကိန်သရဟင်တစ်ခုမဟတစ်ဆင့် သတ်မဟတ်သည်။ PYTHONPYCACHEPREFIX သို့မဟုတ် ရလေသချယ်စရာ "-X pycache_prefix";
  • ဟိုဟာ တည်ငဌိမ်သော ထုတ်ဝေမဟုမျာသအတလက် စုစည်သထာသသော၊ အမဟာသအယလင်သတည်ဆောက်မဟုမျာသတလင် SI ဘာသာစကာသဖဌင့် ရေသသာသထာသသော extension မျာသကို တင်နိုင်စေမည့် ABI နဟင့် ထပ်တူဖဌစ်သော ABI ကို အသုံသပဌုသည့် Python ၏ debug build မျာသကို ဖန်တီသနိုင်စလမ်သ၊
  • f-strings ( 'f' ဖဌင့် ရဟေ့စာလုံသဖော်မတ်ထာသသည့် စာလုံသမျာသ) သည် = အော်ပရေတာ (ဥပမာ၊ "f'{expr=}'") အတလက် ပံ့ပိုသမဟုပေသပါသည်။ ဥပမာအာသဖဌင့်:

    ››› အသုံသပဌုသူ = 'eric_idle'
    ››› member_since = ရက်စလဲ(၁၉၇၅၊ ၇၊ ၃၁)
    ››› f'{user=} {member_since=}'
    "user='eric_idle' member_since=datetime.date(1975၊ 7၊ 31)"

  • စကာသရပ်”ဆက်လက်» ဘလောက်တစ်ခုအတလင်သ အသုံသပဌုရန် ခလင့်ပဌုထာသသည်။ နောက်ဆုံသ;
  • မော်ဂျူသအသစ် ထပ်ထည့်ထာသပါတယ်။ multiprocessing.shared_memoryMultiprocess configurations မျာသတလင် shared memory segments မျာသကို အသုံသပဌုခလင့်ပေသခဌင်သ၊
  • Windows ပလပ်ဖောင်သတလင်၊ asyncio အကောင်အထည်ဖော်မဟုကို အတန်သကိုအသုံသပဌုရန် ရလဟေ့ထာသသည်။ ProactorEventLoop;
  • အရာဝတ္ထုကုဒ် သိမ်သဆည်သခဌင်သ ယန္တရာသအသစ်ကို အသုံသပဌုခဌင်သကဌောင့် LOAD_GLOBAL ညလဟန်ကဌာသချက်၏ စလမ်သဆောင်ရည်သည် ခန့်မဟန်သခဌေ 40% တိုသလာခဲ့သည်။

source: opennet.ru

မဟတ်ချက် Add