የ Python 3.8 ፕሮግራሚንግ ቋንቋ መለቀቅ

ከአንድ አመት ተኩል እድገት በኋላ ቀርቧል ዋና የፕሮግራም ቋንቋ መለቀቅ ዘንዶ 3.8. ለ Python 3.8 ቅርንጫፍ የማስተካከያ ዝመናዎች የታቀደ ነው ፡፡ በ18 ወራት ውስጥ መልቀቅ። ወሳኝ ተጋላጭነቶች እስከ ኦክቶበር 5 ድረስ ለ2024 ዓመታት ይስተካከላሉ። የ3.8 ቅርንጫፍ የማስተካከያ ማሻሻያ በየሁለት ወሩ ይወጣል፣የመጀመሪያው የማስተካከያ የ Python 3.8.1 ልቀት ለዲሴምበር ተይዞለታል።

ከተጨመሩት መካከል ፈጠራዎች:

  • ድጋፍ ውስብስብ መግለጫዎች ውስጥ የመመደብ ስራዎች. በአዲሱ “:=” ኦፕሬተር በሌሎች አገላለጾች ውስጥ የእሴት ምደባ ሥራዎችን ማከናወን ይቻላል ፣ለምሳሌ ፣በሁኔታዊ መግለጫዎች ውስጥ ድርብ ተግባር ጥሪዎችን ለማስቀረት እና loopsን በሚወስኑበት ጊዜ።

    ከሆነ (n:= len(a)) > 10:
    ...

    እያለ (ብሎክ:= f.read(256)) !=":
    ...

  • ድጋፍ የተግባር ነጋሪ እሴቶችን ለመለየት አዲስ አገባብ። በተግባራዊ ፍቺ ወቅት ግቤቶችን ሲዘረዝሩ ፣ አሁን በተግባር ጥሪው ወቅት እሴቶቹ በተዘረዘሩበት ቅደም ተከተል ላይ በመመስረት እሴቶችን ብቻ ሊመደቡ የሚችሉ ነጋሪ እሴቶችን ለመለየት “/” መግለጽ ይችላሉ- በማንኛውም ቅደም ተከተል (ተለዋዋጭ = እሴት አገባብ)). በተግባራዊው በኩል ፣ አዲሱ ባህሪ በ Python ውስጥ ያሉ ተግባራት በ C ውስጥ ያሉትን ተግባራት ባህሪ ሙሉ በሙሉ እንዲመስሉ እና እንዲሁም ከተወሰኑ ስሞች ጋር መያያዝን ለማስወገድ ያስችላል ፣ ለምሳሌ ፣ ለወደፊቱ የመለኪያ ስሙ ለመቀየር የታቀደ ከሆነ።

    የ"/" ባንዲራ ከዚህ ቀደም የተጨመረውን "*" ባንዲራ ያሟላል፣ ተለዋዋጮችን በመለየት በ"ተለዋዋጭ=ዋጋ" ቅጽ ላይ ያለ ምደባ ብቻ ተፈጻሚ ይሆናል። ለምሳሌ ፣ “def f(a, b,/, c, d, *, e, f)” በሚለው ተግባር ውስጥ ተለዋዋጮች “a” እና “b” ሊመደቡ የሚችሉት እሴቶቹ በተዘረዘሩበት ቅደም ተከተል ብቻ ነው። ,
    ተለዋዋጮች “e” እና “f”፣ በ“ተለዋዋጭ=ዋጋ” ምደባ በኩል ብቻ፣ እና ተለዋዋጮች “c” እና “d” በሚከተሉት መንገዶች በማናቸውም

    ረ(10፣ 20፣ 30፣ 40፣ e=50፣ f=60)
    ረ (10፣ 20፣ s=30፣ d=40፣ e=50፣ f=60)

  • ታክሏል። አዲስ ሲ ኤፒአይ
    በሁሉም ላይ ሙሉ ቁጥጥርን በመፍቀድ የ Python ጅምር መለኪያዎችን ለማዋቀር ማዋቀር እና የላቀ የስህተት አያያዝ መገልገያዎችን መስጠት። የታቀደው ኤፒአይ የ Python አስተርጓሚ ተግባርን ወደ ሌሎች የC መተግበሪያዎች ለመክተት ቀላል ያደርገዋል።

  • ተተግብሯል። በ C ቋንቋ የተፃፉ ነገሮችን በፍጥነት ለመድረስ አዲስ የቬክተርካል ፕሮቶኮል. በCPython 3.8 ውስጥ፣ የቬክተርካል መዳረሻ አሁንም ለውስጣዊ አጠቃቀም ብቻ የተገደበ ነው፣ ወደ ይፋዊ ተደራሽ የሆኑ APIs ምድብ ማስተላለፍ በCPython 3.9 ታቅዷል።
  • ታክሏል። ወደ Runtime Audit Hooks የሚደረጉ ጥሪዎች፣ የተከናወኑ ድርጊቶችን ለመፈተሽ ስለ ስክሪፕቱ ሂደት ዝቅተኛ መረጃን በ Python ውስጥ መተግበሪያዎችን እና ማዕቀፎችን ይሰጣል (ለምሳሌ ፣ የሞጁሎችን ማስመጣት ፣ ፋይሎችን መክፈት ፣ ዱካ በመጠቀም መከታተል ይችላሉ) የአውታረ መረብ ሶኬቶችን ማግኘት፣ ኮድን በ exec፣ eval እና run_mod በኩል ማስኬድ);
  • በሞጁሉ ውስጥ ዶሮ ደህንነቱ የተጠበቀ ዕቃዎችን ለመከታታል እና ለማጥፋት የሚያገለግል የ Pickle 5 ፕሮቶኮል ድጋፍ። Pickle የማህደረ ትውስታ ቅጂ ስራዎችን ቁጥር በመቀነስ እና እንደ በመረጃ ላይ የተመሰረቱ የማመቂያ ስልተ ቀመሮችን በመጠቀም ተጨማሪ የማመቻቸት ቴክኒኮችን በመተግበር በPython ሂደቶች መካከል ከፍተኛ መጠን ያለው ውሂብ ማስተላለፍን በብዝሃ-ኮር እና ባለብዙ-መስቀለኛ ቋቶች መካከል ለማመቻቸት ይፈቅድልዎታል። አምስተኛው የፕሮቶኮሉ እትም ከባንድ ውጪ የማስተላለፊያ ሁነታን በመጨመሩ የሚታወቅ ሲሆን በዚህ ውስጥ መረጃ ከዋናው የቃሚ ዥረት ተለይቶ ሊተላለፍ ይችላል.
  • በነባሪነት አራተኛው የፒክል ፕሮቶኮል ነቅቷል ፣ ይህም ቀደም ሲል በነባሪነት ከቀረበው ሶስተኛው ስሪት ጋር ሲነፃፀር ከፍተኛ አፈፃፀም እና የተላለፈውን መረጃ መጠን ለመቀነስ ያስችላል።
  • በሞጁሉ ውስጥ መተየብ በርካታ አዳዲስ ባህሪያት ቀርበዋል፡-
    • ክፍል ታይድዲክት ከቁልፎቹ ("TypedDict('Point2D', x=int, y=int, label=str)") ጋር ለተያያዘው መረጃ አይነት መረጃ በግልፅ ለተገለጸባቸው ተጓዳኝ ድርድሮች።
    • ይተይቡ ቃል በቃል, ይህም መለኪያን ለመገደብ ወይም እሴቱን ወደ ጥቂት አስቀድሞ የተገለጹ እሴቶች ("ቀጥታ['ተገናኝቷል'፣ 'የተቋረጠ']")።
    • ግንባታ "የመጨረሻ", ይህም የተለዋዋጮችን, ተግባራትን, ዘዴዎችን እና ክፍሎችን መለወጥ ወይም እንደገና መመደብ የማይችሉትን እሴቶችን ለመወሰን ያስችላል ("pi: Final[float] = 3.1415926536").
  • በተለየ የ FS ዛፍ ውስጥ የተቀመጠ እና ከኮዱ ጋር ከመያዣዎች ተነጥሎ ለተሰበሰቡ ፋይሎች መሸጎጫ በባይቴኮድ የመመደብ ችሎታ ታክሏል። ፋይሎችን በባይቴኮድ ለማስቀመጥ ዱካ በተለዋዋጭ ተዘጋጅቷል። PYTHONPYCACHEPREFIX ወይም አማራጭ "-X pycache_prefix";
  • ተተግብሯል። ከመልቀቂያው ጋር ተመሳሳይ የሆነ ኤቢአይ የሚጠቀሙ የፓይዘንን ማረም የመፍጠር ችሎታ፣ ይህም በSI ቋንቋ የተፃፉ ማራዘሚያዎችን እንዲጭኑ ያስችልዎታል ፣ለረጋ ልቀቶች ፣በማረም ግንባታዎች;
  • f-strings (የተቀረጹ ቀጥተኛ ቃላት በ'f' የተቀመጡ) ለ = ኦፕሬተር (ለምሳሌ "f'{expr=}'") ድጋፍ ይሰጣሉ፣ ይህም በቀላሉ ለማረም አገላለጽ ወደ ጽሑፍ እንዲቀይሩ ያስችልዎታል። ለምሳሌ:

    ››› ተጠቃሚ = 'eric_idle'
    ››› አባል_ከዚህ = ቀን (1975፣ 7፣ 31)
    ››› f'{ተጠቃሚ=} {አባል_ከሆነ=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • መግለጫ "ቀጥል» በብሎክ ውስጥ ጥቅም ላይ እንዲውል ተፈቅዶለታል በመጨረሻ;
  • አዲስ ሞጁል ታክሏል። multiprocessing.shared_memoryበባለብዙ ሂደት ውቅሮች ውስጥ የጋራ ማህደረ ትውስታ ክፍሎችን መጠቀምን መፍቀድ;
  • በዊንዶውስ መድረክ ላይ, የአሲኖ አተገባበር ክፍሉን ለመጠቀም ተንቀሳቅሷል ProactorEventLoop;
  • አዲስ ነገር ኮድ መሸጎጫ ዘዴ በመጠቀም ምክንያት የLOAD_GLOBAL መመሪያ አፈጻጸም በግምት 40% ጨምሯል።

ምንጭ: opennet.ru

አስተያየት ያክሉ