Python 3.8 ක්‍රමලේඛන භාෂාව නිකුත් කිරීම

සංවර්ධනයෙන් වසර එකහමාරකට පසුව ඉදිරිපත් කරන ලදී ප්රධාන ක්රමලේඛන භාෂා නිකුතුව Python 3.8. Python 3.8 ශාඛාව සඳහා නිවැරදි යාවත්කාලීන කිරීම් සැලසුම් කර ඇත මාස 18ක් ඇතුළත නිකුත් කරන්න. 5 ඔක්තෝබර් දක්වා වසර 2024ක් සඳහා තීරණාත්මක දුර්වලතා නිරාකරණය කෙරේ. Python 3.8 හි පළමු නිවැරදි කිරීමේ නිකුතුව දෙසැම්බර් මාසයේදී පැවැත්වීමට නියමිතව ඇති අතර, 3.8.1 ශාඛාව සඳහා නිවැරදි යාවත්කාලීන කිරීම් සෑම මාස දෙකකට වරක් නිකුත් කෙරේ.

එකතු කරන ලද ඒවා අතර නවෝත්පාදන:

  • සහාය සංකීර්ණ ප්‍රකාශන තුළ පැවරුම් මෙහෙයුම්. නව “:=” ක්‍රියාකරු සමඟ, වෙනත් ප්‍රකාශන තුළ අගය පැවරීමේ මෙහෙයුම් සිදු කළ හැකිය, උදාහරණයක් ලෙස, කොන්දේසි සහිත ප්‍රකාශවල ද්විත්ව ක්‍රියාකාරී ඇමතුම් වළක්වා ගැනීමට සහ ලූප අර්ථ දැක්වීමේදී:

    නම් (n:= len(a)) > 10:
    ...

    අතරතුර (බ්ලොක් := f.read(256)) != ":
    ...

  • සහාය ශ්‍රිත තර්ක නියම කිරීම සඳහා නව වාක්‍ය ඛණ්ඩය. ශ්‍රිත නිර්වචනයකදී තර්ක ගණන් කිරීමේදී, පැවරිය හැකි තර්ක වලින්, ශ්‍රිත ඇමතුම අතරතුර අගයන් ගණනය කරන අනුපිළිවෙල මත පදනම්ව පමණක් අගයන් පැවරිය හැකි තර්ක වෙන් කිරීමට ඔබට දැන් "/" නියම කළ හැක. ඕනෑම අනුපිළිවෙලකින් (variable=value syntax) ). ප්‍රායෝගික පැත්තෙන්, නව විශේෂාංගය මගින් Python හි ඇති ශ්‍රිතයන්ට C හි පවතින ශ්‍රිතවල හැසිරීම සම්පූර්ණයෙන්ම අනුකරණය කිරීමට ඉඩ සලසයි, තවද නිශ්චිත නම් වලට බැඳීම වළක්වා ගැනීමට, උදාහරණයක් ලෙස, පරාමිති නාමය අනාගතයේදී වෙනස් කිරීමට සැලසුම් කර ඇත්නම්.

    “/” ධජය කලින් එකතු කළ “*” ධජය සම්පූර්ණ කරයි, “variable=value” පෝරමයේ පැවරුමක් පමණක් අදාළ වන විචල්‍ය වෙන් කරයි. උදාහරණයක් ලෙස, "def f(a, b, /, c, d, *, e, f):" ශ්‍රිතයේ "a" සහ "b" විචල්‍යයන් පැවරිය හැක්කේ අගයන් ලැයිස්තුගත කර ඇති අනුපිළිවෙලට පමණි. ,
    “e” සහ “f” විචල්‍යයන්, “variable=value” පැවරුම හරහා පමණක්, සහ “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 වෙත ඇමතුම් (උදාහරණයක් ලෙස, ඔබට මොඩියුල ආනයනය කිරීම, ගොනු විවෘත කිරීම, හෝඩුවාවක් භාවිතා කිරීම නිරීක්ෂණය කළ හැක, ජාල සොකට් වලට ප්‍රවේශ වීම, exec හරහා කේතය ධාවනය කිරීම, eval සහ run_mod);
  • මොඩියුලයේ අච්චාරු සපයා ඇත Pickle 5 ප්‍රොටෝකෝලය සඳහා සහය වන අතර, වස්තු අනුක්‍රමික කිරීම සහ ඉවත් කිරීම සඳහා භාවිතා වේ. Pickle මඟින් ඔබට මතක පිටපත් මෙහෙයුම් සංඛ්‍යාව අඩු කිරීමෙන් සහ දත්ත-විශේෂිත සම්පීඩන ඇල්ගොරිතම භාවිතා කිරීම වැනි අතිරේක ප්‍රශස්තිකරණ ශිල්පීය ක්‍රම යෙදීමෙන් බහු-core සහ බහු-නෝඩ් වින්‍යාසයන්හි Python ක්‍රියාවලි අතර විශාල දත්ත ප්‍රමාණයක් මාරු කිරීම ප්‍රශස්ත කිරීමට ඔබට ඉඩ සලසයි. ප්‍රොටෝකෝලයේ පස්වන අනුවාදය, ප්‍රධාන අච්චාරු ප්‍රවාහයෙන් දත්ත වෙන වෙනම සම්ප්‍රේෂණය කළ හැකි, සංගීත කණ්ඩායමෙන් පිටත සම්ප්‍රේෂණ මාදිලියක් එකතු කිරීම සඳහා කැපී පෙනේ.
  • පෙරනිමියෙන්, අච්චාරු ප්‍රොටෝකෝලයේ සිව්වන අනුවාදය සක්‍රිය කර ඇති අතර, පෙරනිමියෙන් ඉදිරිපත් කරන ලද තුන්වන අනුවාදය හා සසඳන විට, ඉහළ කාර්ය සාධනයක් සහ සම්ප්‍රේෂණය වන දත්තවල ප්‍රමාණය අඩු කිරීමට ඉඩ සලසයි;
  • මොඩියුලයේ ටයිප් කිරීම නව විශේෂාංග කිහිපයක් හඳුන්වා දී ඇත:
    • පන්තිය TypedDict යතුරු සමග සම්බන්ධිත දත්ත සඳහා වර්ග තොරතුරු පැහැදිලිව සඳහන් කර ඇති ආශ්‍රිත අරා සඳහා ("TypedDict('Point2D', x=int, y=int, label=str)").
    • වර්ගය වචනාර්ථය, එමඟින් ඔබට පරාමිතියක් සීමා කිරීමට හෝ අගය පූර්ව නිශ්චිත අගයන් කිහිපයකට සීමා කිරීමට ඉඩ සලසයි (“සාක්ෂරතාව[‘සම්බන්ධිත’, ‘විසන්ධි වූ’]”).
    • නිර්මාණ "අවසාන", වෙනස් කළ නොහැකි හෝ නැවත පැවරිය නොහැකි විචල්‍ය, ශ්‍රිත, ක්‍රම සහ පන්ති වල අගයන් අර්ථ දැක්වීමට හැකි වේ ("pi: Final[float] = 3.1415926536").
  • bytecode සමඟ සම්පාදනය කරන ලද ගොනු සඳහා හැඹිලියක් පැවරීමේ හැකියාව එකතු කර, වෙනම FS ගසක සුරකින ලද සහ කේතය සමඟ නාමාවලි වලින් වෙන් කර ඇත. bytecode සමඟ ගොනු සුරැකීමේ මාර්ගය විචල්‍යයක් හරහා සකසා ඇත PYTHONPYCACHEPREFIX හෝ විකල්පය "-X pycache_prefix";
  • ක්‍රියාත්මක කළා නිකුතුවට සමාන ABI භාවිතා කරන Python හි දෝශ නිරාකරණ තැනීමේ හැකියාව, එස්අයි භාෂාවෙන් ලියා ඇති, ස්ථායී නිකුතු සඳහා සම්පාදනය කරන ලද, දෝශ නිරාකරණ ගොඩනැංවීම් තුළ ඔබට පූරණය කිරීමට ඉඩ සලසයි;
  • 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, බහු ක්‍රියාවලි වින්‍යාසයන්හි හවුල් මතක කොටස් භාවිතයට ඉඩ දීම;
  • Windows වේදිකාවේ, asyncio ක්‍රියාත්මක කිරීම පන්තිය භාවිතා කිරීමට ගෙන ගොස් ඇත ProactorEventLoop;
  • නව වස්තු කේත හැඹිලි යාන්ත්‍රණයක් භාවිතා කිරීම හේතුවෙන් LOAD_GLOBAL උපදෙස් වල ක්‍රියාකාරීත්වය ආසන්න වශයෙන් 40% කින් වැඩි වී ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න