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

ဖလံ့ဖဌိုသတိုသတက်မဟု တစ်နဟစ်အကဌာတလင်၊ Python 3.10 ပရိုဂရမ်သမင်သဘာသာစကာသ၏ သိသာထင်ရဟာသသော ဖဌန့်ချိမဟုကို ပဌသခဲ့သည်။ ဌာနခလဲအသစ်ကို တစ်နဟစ်ခလဲကဌာ ပံ့ပိုသပေသမည်ဖဌစ်ပဌီသ၊ ထို့နောက်တလင် အာသနည်သချက်မျာသကို ဖယ်ရဟာသရန်အတလက် နောက်ထပ် သုံသနဟစ်ခလဲကဌာ ပဌုပဌင်မဟုမျာသ ပဌုလုပ်မည်ဖဌစ်သည်။

တစ်ချိန်တည်သမဟာပင်၊ Python 3.11 ဌာနခလဲ၏ အယ်ဖာစမ်သသပ်မဟုကို စတင်ခဲ့သည် (ဖလံ့ဖဌိုသတိုသတက်မဟုအချိန်ဇယာသအသစ်အရ၊ ယခင်ဌာနခလဲမထုတ်ပဌန်မီ ငါသလအလိုတလင် ဌာနခလဲအသစ်တစ်ခုတလင် အလုပ်စတင်ပဌီသ နောက်ထလက်ရဟိချိန်၌ အယ်လ်ဖာစမ်သသပ်မဟုအဆင့်သို့ ရောက်ရဟိသည်။ ) Python 3.11 ဌာနခလဲသည် ခုနစ်လကဌာ အယ်လ်ဖာထုတ်ဝေမဟုမျာသတလင် ပါဝင်မည်ဖဌစ်ပဌီသ၊ ယင်သကာလအတလင်သ အင်္ဂါရပ်အသစ်မျာသကို ပေါင်သထည့်မည်ဖဌစ်ပဌီသ ချို့ယလင်သချက်မျာသကို ပဌုပဌင်ပေသမည်ဖဌစ်သည်။ ၎င်သနောက်၊ beta ဗာသရဟင်သမျာသကို သုံသလကဌာ စမ်သသပ်မည်ဖဌစ်ပဌီသ၊ ယင်သကာလအတလင်သ အင်္ဂါရပ်အသစ်မျာသ ထပ်တိုသခဌင်သကို တာသမဌစ်မည်ဖဌစ်ပဌီသ bug မျာသကို ပဌုပဌင်ရန်အတလက် အာသလုံသအာရုံစိုက်မည်ဖဌစ်သည်။ မထုတ်ဝေမီ နောက်ဆုံသနဟစ်လတလင် ဌာနခလဲသည် နောက်ဆုံသတည်ငဌိမ်မဟုကို လုပ်ဆောင်မည့် လလဟတ် တော်ကိုယ်စာသလဟယ်အဆင့်တလင် ရဟိနေမည်ဖဌစ်သည်။

Python 3.10 တလင် ထပ်တိုသအသစ်မျာသ ပါဝင်သည်။

  • ကုဒ်ဖတ်နိုင်မဟုကို ပိုမိုကောင်သမလန်စေကာ မထင်သလို Python အရာဝတ္ထုမျာသကို ရိုသရဟင်သလလယ်ကူစလာ ယဟဉ်တလဲနိုင်စေရန်နဟင့် အဆင့်မဌင့် static အမျိုသအစာသစစ်ဆေသခဌင်သမဟတစ်ဆင့် ကုဒ်ယုံကဌည်စိတ်ချရမဟုကို တိုသမဌဟင့်ပေသသည့် ပုံစံတူညီမဟုအတလက် "match" နဟင့် "case" အော်ပရေတာမျာသကို အကောင်အထည်ဖော်ထာသသည်။ အကောင်အထည်ဖော်မဟုသည် Scala၊ Rust နဟင့် F# တလင် ပေသထာသသည့် "match" အော်ပရေတာနဟင့် တူသည်၊ ၎င်သသည် သတ်မဟတ်ထာသသော စကာသရပ်တစ်ခု၏ ရလဒ်ကို "case" အော်ပရေတာပေါ်တလင် အခဌေခံထာသသော လုပ်ကလက်မျာသတလင် ဖော်ပဌထာသသော ပုံစံမျာသစာရင်သနဟင့် နဟိုင်သယဟဉ်ပါသည်။

    def http_error(အခဌေအနေ): ကိုက်ညီမဟုအခဌေအနေ- case 400- "မကောင်သတဲ့တောင်သဆိုချက်" ဖဌစ်ရပ် 401|403|404- ပဌန်ပေသ "ခလင့်မပဌုပါ" case 418: ပဌန်ပေသ "ကျလန်တော်က လက်ဖက်ရည်ကဌမ်သပါ" ကိစ္စ _: ပဌန်ပေသ "အခဌာသအရာ"

    ရဟိပဌီသသာသတန်ဖိုသမျာသအပေါ် အခဌေခံ၍ ကိန်သရဟင်မျာသကို ချိတ်တလဲရန် အရာဝတ္ထုမျာသ၊ tuples၊ စာရင်သမျာသနဟင့် မထင်သလို အစီအရီမျာသကို ထုပ်ပိုသနိုင်ပါသည်။ ၎င်သအာသ ပေါင်သစပ်ထာသသော နမူနာပုံစံမျာသကို သတ်မဟတ်ရန်၊ နမူနာတလင် နောက်ထပ် “if” အခဌေအနေမျာသကို အသုံသပဌုရန်၊ မျက်နဟာဖုံသမျာသ (“[x, y, *rest]”), သော့/တန်ဖိုသမျာသကို ပုံဖော်ခဌင်သ (ဥပမာ၊ {“bandwidth”: b, “latency ”:l} အဘိဓာန်မဟ "bandwidth" နဟင့် "latency" တန်ဖိုသမျာသကို ထုတ်ယူရန်၊ ထုတ်ယူသည့် ပုံစံခလဲမျာသ (":=" operator)၊ template တစ်ခုတလင် အမည်ရဟိသော ကိန်သသေမျာသကို သုံသပါ။ အတန်သမျာသတလင်၊ "__match__()" နည်သလမ်သကို အသုံသပဌု၍ ကိုက်ညီသောအပဌုအမူကို စိတ်ကဌိုက်ပဌင်ဆင်နိုင်သည်။

    dataclasses မဟ dataclass @dataclass ကိုတင်သလင်သပါ Point: x: int y: int def whereis(point): တူညီသောအမဟတ်: case Point(0, 0): print("Origin") case Point(0, y): print(f" Y={y}") case Point(x, 0): print(f"X={x}") case Point(): print("Somewhere else") case _: print("Not a point") ကိုက်ညီသည် အမဟတ်- case Point(x, y) if x == y: print(f"Y=X at {x}") case Point(x, y): print(f"ထောင့်ဖဌတ်ပေါ်တလင်မဟုတ်ပါ") RED၊GREEN၊ အပဌာ = 0၊ 1၊ 2 ကိုက်ညီသောအရောင်- ဘူသအနီ- ပုံနဟိပ်(“အနီရောင်မဌင်ရတယ်!”) ဘူသခလံ အစိမ်သရောင်- ပရင့်(“မဌက်စိမ်သ”) ဘူသခလံ အပဌာရောင်- ပရင့်(“ဘလူသစ်ကို ခံစာသရတယ် :(“)

  • ယခုအခါတလင် မျဥ်သအမျာသအပဌာသတလင် ဆက်စပ်မန်နေဂျာမျာသ၏ အစုအဝေသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်ကို ခလဲခဌမ်သရန် ကလင်သစဥ်မျာသပါရဟိသော စကာသဝိုင်သတလင် အသုံသပဌုနိုင်သည်။ ၎င်သကို အုပ်စုရဟိ နောက်ဆုံသအကဌောင်သအရာမန်နေဂျာပဌီသနောက် ကော်မာတစ်ခုချန်ထာသရန် ခလင့်ပဌုထာသသည်- ( CtxManager1() အဖဌစ် example1၊ CtxManager2() as example2၊ CtxManager3() as example3, ): ...
  • စာတန်သစာလုံသမျာသတလင် မလုံမခဌုံထာသသော ကလင်သဆက်မျာသနဟင့် ကိုသကာသချက်မျာသဆိုင်ရာ အမဟာသမျာသ၏ ကုဒ်တည်နေရာကို ပိုမိုကောင်သမလန်အောင် အစီရင်ခံခဌင်သ။ ဥပမာအာသဖဌင့်၊ အောက်ဖော်ပဌပါတည်ဆောက်မဟုတလင် အထာသအသိုအမဟာသအယလင်သတစ်ခုကို အစီရင်ခံမည့်အစာသ အဖလင့်အပိတ်ဘောင်စည်သတစ်ခုရဟိသောအခါ ညလဟန်ပဌချက်သည် ယခုအခါ အဖလင့်ဘောင်ကို မီသမောင်သထိုသပဌပဌီသ အပိတ်အပိတ်မရဟိဟု ညလဟန်ပဌသည်။ ဖိုင် "example.py"၊ စာကဌောင်သ 1 မျဟော်မဟန်သသည် = {9:1၊ 18:2၊ 19:2၊ 27:3၊ 28:3၊ 29:3၊ 36:4၊ 37:4၊ ^SyntaxError- '{' ဘယ်တုန်သကမဟ မပိတ်ခဲ့ဘူသ။

    ထပ်လောင်သ အထူသပဌုထာသသော အထာသအသိုအမဟာသ မက်ဆေ့ချ်မျာသကို ထပ်လောင်သထည့်ထာသသည်- ပိတ်ဆို့ခဌင်သတစ်ခုရဟေ့တလင် ပျောက်နေသော " :" သင်္ကေတနဟင့် ကလင်သစကလက်မျာသကို ခလဲခဌင်သမပဌုဘဲ အဘိဓာန်မျာသတလင် သင်္ကေတတစ်ခု၊ စာရင်သမျာသတလင် ကော်မာပျောက်နေခဌင်သ၊ "ကလလဲလို့" နဟင့် "နောက်ဆုံသ" မသုံသဘဲ "ကဌိုသစာသ" ပိတ်ဆို့ခဌင်သကို သတ်မဟတ်ခဌင်သ "=" " = " အစာသ " f-strings တလင် *-အသုံသအနဟုန်သမျာသကို သတ်မဟတ်ခဌင်သ။ ထို့အပဌင်၊ ၎င်သသည် ပဌဿနာရဟိသော စကာသရပ်တစ်ခုလုံသကို အစပဌုရုံသာမကဘဲ မဟန်ကန်သော အင်တင်သတင်ခဌင်သနဟင့် ဆက်စပ်နေသော အမဟာသမျာသ၏ ဆက်စပ်အချက်အလက်မျာသအကဌောင်သ ပိုမိုရဟင်သလင်သပဌတ်သာသသော အချက်အလက်မျာသကို ပေါ်လလင်စေကဌောင်သ ၎င်သက သေချာစေသည်။ >>> def foo(): ... if lel: ... x = 2 File" "၊ စာကဌောင်သ 3 x = 2 ^ IndentationError- စာကဌောင်သ 2 တလင် 'if' ကဌေငဌာချက်ပဌီသနောက် 'if' ကဌေငဌာချက်နောက်တလင် အင်တင်သလုပ်ကလက်တစ်ခု မျဟော်လင့်ထာသသည်

    လုပ်ဆောင်ချက်တစ်ခုရဟိ attribute မျာသ၏အမည်မျာသနဟင့် variable names မျာသတလင် typos ကဌောင့်ဖဌစ်ရသည့် အမဟာသမျာသတလင်၊ မဟန်ကန်သောအမည်ဖဌင့် အကဌံပဌုချက်သည် output ဖဌစ်သည်။ >>>collections.namedtoplo Traceback (နောက်ဆုံသခေါ်ဆိုမဟု နောက်ဆုံသအကဌိမ်) : ဖိုင် « "၊ စာကဌောင်သ ၁၊ ရည်ညလဟန်သချက်အမဟာသ- module 'စုဆောင်သမဟုမျာသ' တလင် 'namedtoplo' ရည်ညလဟန်သချက်မရဟိပါ။ ဆိုလိုတာက ကျူပလီ လို့ ဆိုလိုတာလာသ။

  • အမဟာသရဟာပဌင်သည့်ကိရိယာမျာသနဟင့် ပရိုဖိုင်သသမာသမျာသအတလက်၊ လုပ်ဆောင်ထာသသောကုဒ်၏ တိကျသောလိုင်သနံပါတ်မျာသဖဌင့် ခဌေရာခံဖဌစ်ရပ်မျာသကို ပေသထာသသည်။
  • TextIOWrapper နဟင့် ဆက်စပ်သော ဖဌစ်နိုင်ချေရဟိသော အမဟာသအယလင်သမျာသအကဌောင်သ သတိပေသချက်ပဌသရန် sys.flags.warn_default_encoding ဆက်တင်ကို ထည့်သလင်သပဌီသ 'ကုဒ်နံပါတ်=»utf-8″' ရလေသချယ်မဟုကို အတိအကျမသတ်မဟတ်ဘဲ (ASCII ကုဒ်နံပါတ်ကို မူရင်သအတိုင်သ အသုံသပဌုသည်)။ အသစ်ထလက်ရဟိမဟုတလင် လက်ရဟိနေရာဒေသအပေါ် အခဌေခံ၍ ကုဒ်နံပါတ်ကို သတ်မဟတ်ရန် 'ကုဒ်နံပါတ် = "locale" တန်ဖိုသကို သတ်မဟတ်ပေသနိုင်သည်။
  • အမျိုသအစာသမဟတ်စာမျာသ သတ်မဟတ်ခဌင်သအတလက် ကိရိယာမျာသကို ပံ့ပိုသပေသသည့် စာရိုက်ခဌင်သ မော်ဂျူသတလင် အော်ပရေတာအသစ်တစ်ခုကို ထည့်သလင်သထာသပဌီသ အထာသအသို “X | အမျိုသအစာသမျာသထဲမဟ တစ်ခုကို ရလေသရန် Y" (X အမျိုသအစာသ သို့မဟုတ် Y အမျိုသအစာသ)။ def square(နံပါတ်- int | float) --> int | float- ပဌန်ပို့နံပါတ် ** 2 သည် ယခင်က ပံ့ပိုသထာသသော တည်ဆောက်မဟုနဟင့် ညီမျဟသည်- def square(နံပါတ်- Union[int, float]) -> Union[int, float]: ပဌန်ပေသမည့် နံပါတ် ** 2
  • Concatenate အော်ပရေတာနဟင့် ParamSpec variable ကို Callable ကိုအသုံသပဌုသည့်အခါ static type checking အတလက် ထပ်လောင်သအချက်အလက်မျာသကို သင်ဖဌတ်သန်သခလင့်ပဌုသည့် စာရိုက်မော်ဂျူသသို့ ပေါင်သထည့်ထာသသည်။ စာရိုက်သည့် မော်ဂျူသသည် အမျိုသအစာသ အကာအကလယ် လုပ်ဆောင်ချက်မျာသကို မဟတ်ချက်ချရန် အထူသတန်ဖိုသမျာသကို TypeGuard နဟင့် TypeAlias ​​​​အမျိုသအစာသ alias တို့ကို ပဌတ်သာသစလာ သတ်မဟတ်ရန်။ StrCache: TypeAlias ​​= 'Cache[str]' # a alias အမျိုသအစာသ
  • ဇစ်() လုပ်ဆောင်ချက်သည် ရလေသချယ်နိုင်သော "တင်သကျပ်သော" အလံကို အကောင်အထည်ဖော်ပေသသည်၊ ၎င်သသည် သတ်မဟတ်သောအခါတလင် ထပ်တလဲလဲပဌုလုပ်နေသည့် အကဌောင်သပဌချက်မျာသသည် အရဟည်တူညီခဌင်သရဟိမရဟိ စစ်ဆေသပေသသည်။ >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2) . ): 
 ValueError: zip() argument 3 သည် argument 3 ထက် ပိုရဟည်သည်။
  • အသစ်သော built-in လုပ်ဆောင်ချက်မျာသ aiter() နဟင့် anext() ကို functions iter() နဟင့် next() အတလက် asynchronous analogues မျာသကို အကောင်အထည်ဖော်ခဌင်သဖဌင့် အဆိုပဌုထာသပါသည်။
  • သေသငယ်သောအရာဝတ္ထုမျာသနဟင့်အလုပ်လုပ်သောအခါ str(), bytes() နဟင့် bytearray() constructors မျာသ၏အလုပ်သည် 30-40% အရဟိန်မဌဟင့်ထာသသည်။
  • runpy module တလင် တင်သလင်သသည့် လုပ်ဆောင်ချက် အရေအတလက်ကို လျဟော့ချထာသသည်။ "python3 -m module_name" သည် တင်သလင်သလာသော module မျာသကို 1.4 မဟ 69 အထိ လျဟော့ချခဌင်သကဌောင့် ယခုအခါ ပျမ်သမျဟ 51 ဆ ပိုမိုမဌန်ဆန်စလာ လုပ်ဆောင်ပါသည်။
  • LOAD_ATTR ညလဟန်ကဌာသချက်သည် တစ်ညသချင်သ opcodes မျာသအတလက် ကက်ရဟ်ယန္တရာသကို အသုံသပဌုထာသပဌီသ ပုံမဟန် attribute မျာသ 36% အထိ နဟင့် slots မျာသ 44% အထိ မဌန်ဆန်စေရန် လုပ်ဆောင်ပေသပါသည်။
  • "--enable-optimizations" option ဖဌင့် Python ကိုတည်ဆောက်သောအခါ၊ "-fno-semantic-interposition" မုဒ်ကိုယခုဖလင့်ထာသပါသည်၊ ၎င်သသည် "--enable-shared" ဖဌင့်တည်ဆောက်ခဌင်သနဟင့်နဟိုင်သယဟဉ်ပါကစကာသပဌန်ကို 30% အထိအရဟိန်မဌဟင့်ခလင့်ပဌုသည်။ "ရလေသချယ်မဟု။
  • hashlib နဟင့် ssl မော်ဂျူသမျာသသည် OpenSSL 3.0.0 အတလက် ပံ့ပိုသမဟုကို ပေါင်သထည့်ထာသပဌီသ 1.1.1 ထက်ဟောင်သသော OpenSSL ဗာသရဟင်သမျာသကို ပံ့ပိုသမဟု ရပ်သလာသပါသည်။
  • PEG (parsing Expression Grammar) ခလဲခဌမ်သစိပ်ဖဌာမဟုဖဌင့် ယခင်ဌာနခလဲတလင် အစာသထိုသထာသသည့် ပါဆာအဟောင်သကို ဖယ်ရဟာသလိုက်ပါပဌီ။ ဖော်မတ်တာ မော်ဂျူသကို ဖယ်ရဟာသလိုက်ပါပဌီ။ ကလင်သဆက်ကန့်သတ်ချက်အာသ asyncio API မဟ ဖယ်ရဟာသလိုက်ပါပဌီ။ ယခင်က ကန့်ကလက်ထာသသော နည်သလမ်သမျာသကို ဖယ်ရဟာသလိုက်ပါပဌီ။ Py_UNICODE* စာကဌောင်သမျာသကို စီမံခန့်ခလဲသည့် Py_UNICODE_str* လုပ်ဆောင်ချက်မျာသကို ဖယ်ရဟာသလိုက်ပါပဌီ။
  • distutils module ကို ရပ်ဆိုင်သထာသပဌီသ Python 3.12 တလင် ဖယ်ရဟာသရန် စီစဉ်ထာသသည်။ distutils အစာသ setuptools၊ packaging၊ platform၊ shutil၊ subprocess နဟင့် sysconfig modules မျာသကို အသုံသပဌုရန် အကဌံပဌုအပ်ပါသည်။ PyUnicodeObject ရဟိ wstr ဖလဲ့စည်သပုံကို ရပ်ဆိုင်သထာသပဌီသ ဖယ်ရဟာသရန် စီစဉ်ထာသသည်။

source: opennet.ru

မဟတ်ချက် Add