పైథాన్ 3.8 ప్రోగ్రామింగ్ లాంగ్వేజ్ విడుదల

ఏడాదిన్నర అభివృద్ధి తర్వాత సమర్పించారు ప్రధాన ప్రోగ్రామింగ్ భాష విడుదల పైథాన్ 3.8. పైథాన్ 3.8 బ్రాంచ్ కోసం దిద్దుబాటు నవీకరణలు ప్రణాళిక 18 నెలల్లో విడుదల. అక్టోబర్ 5 వరకు 2024 సంవత్సరాల పాటు క్లిష్టమైన దుర్బలత్వాలు పరిష్కరించబడతాయి. 3.8 శాఖకు సంబంధించిన దిద్దుబాటు నవీకరణలు ప్రతి రెండు నెలలకు విడుదల చేయబడతాయి, పైథాన్ 3.8.1 యొక్క మొదటి దిద్దుబాటు విడుదల డిసెంబర్‌లో షెడ్యూల్ చేయబడుతుంది.

జోడించిన వాటిలో ఆవిష్కరణలు:

  • Поддержка సంక్లిష్ట వ్యక్తీకరణలలో కేటాయింపు కార్యకలాపాలు. కొత్త “:=” ఆపరేటర్‌తో, ఇతర వ్యక్తీకరణలలో విలువ అసైన్‌మెంట్ కార్యకలాపాలను నిర్వహించడం సాధ్యమవుతుంది, ఉదాహరణకు, షరతులతో కూడిన స్టేట్‌మెంట్‌లలో డబుల్ ఫంక్షన్ కాల్‌లను నివారించడానికి మరియు లూప్‌లను నిర్వచించేటప్పుడు:

    అయితే (n:= len(a)) > 10:
    ...

    అయితే (బ్లాక్ := f.read(256)) != ":
    ...

  • Поддержка ఫంక్షన్ ఆర్గ్యుమెంట్‌లను పేర్కొనడానికి కొత్త సింటాక్స్. ఫంక్షన్ డెఫినిషన్ సమయంలో ఆర్గ్యుమెంట్‌లను లెక్కించేటప్పుడు, మీరు ఇప్పుడు కేటాయించగల ఆర్గ్యుమెంట్‌ల నుండి, ఫంక్షన్ కాల్ సమయంలో విలువలు లెక్కించబడే క్రమం ఆధారంగా మాత్రమే విలువలను కేటాయించగల ఆర్గ్యుమెంట్‌లను వేరు చేయడానికి "/"ని పేర్కొనవచ్చు. ఏదైనా క్రమంలో (వేరియబుల్=విలువ సింటాక్స్) ). ప్రాక్టికల్ వైపు, కొత్త ఫీచర్ C లో ఉన్న ఫంక్షన్‌ల ప్రవర్తనను పూర్తిగా అనుకరించడానికి పైథాన్‌లోని ఫంక్షన్‌లను అనుమతిస్తుంది మరియు నిర్దిష్ట పేర్లతో బైండింగ్ చేయడాన్ని నివారించడానికి కూడా అనుమతిస్తుంది, ఉదాహరణకు, భవిష్యత్తులో పరామితి పేరు మార్చాలని ప్లాన్ చేస్తే.

    “/” ఫ్లాగ్ గతంలో జోడించిన “*” ఫ్లాగ్‌ను పూర్తి చేస్తుంది, వేరియబుల్‌లను వేరు చేస్తుంది, దీని కోసం “వేరియబుల్=వాల్యూ” రూపంలో అసైన్‌మెంట్ మాత్రమే వర్తిస్తుంది. ఉదాహరణకు, "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
    పైథాన్ ప్రారంభ పారామితులను కాన్ఫిగర్ చేయడానికి, అన్నింటిపై పూర్తి నియంత్రణను అనుమతిస్తుంది ఆకృతీకరణ మరియు అధునాతన దోష నిర్వహణ సౌకర్యాలను అందించడం. ప్రతిపాదిత API ఇతర C అప్లికేషన్‌లలో పైథాన్ ఇంటర్‌ప్రెటర్ ఫంక్షనాలిటీని పొందుపరచడాన్ని సులభతరం చేస్తుంది;

  • అమలు చేశారు సి భాషలో వ్రాసిన వస్తువులకు వేగవంతమైన యాక్సెస్ కోసం కొత్త వెక్టర్‌కాల్ ప్రోటోకాల్. CPython 3.8లో, Vectorcallకు యాక్సెస్ ఇప్పటికీ అంతర్గత వినియోగానికి పరిమితం చేయబడింది; పబ్లిక్‌గా యాక్సెస్ చేయగల APIల వర్గానికి బదిలీ CPython 3.9లో ప్లాన్ చేయబడింది;
  • చేర్చబడింది రన్‌టైమ్ ఆడిట్ హుక్స్‌కి కాల్‌లు, ఇది పైథాన్‌లో అప్లికేషన్‌లు మరియు ఫ్రేమ్‌వర్క్‌లను అందిస్తుంది, ఇది చేసిన చర్యలను ఆడిట్ చేయడానికి స్క్రిప్ట్ యొక్క పురోగతి గురించి తక్కువ-స్థాయి సమాచారాన్ని యాక్సెస్ చేస్తుంది (ఉదాహరణకు, మీరు మాడ్యూల్స్ దిగుమతిని ట్రాక్ చేయవచ్చు, ఫైల్‌లను తెరవడం, ట్రేస్ ఉపయోగించి, నెట్‌వర్క్ సాకెట్లను యాక్సెస్ చేయడం, ఎగ్జిక్యూటివ్, ఎవాల్ మరియు రన్_మోడ్ ద్వారా కోడ్‌ని అమలు చేయడం);
  • మాడ్యూల్ లో ఊరగాయ సురక్షితం పికిల్ 5 ప్రోటోకాల్‌కు మద్దతు, వస్తువులను సీరియలైజ్ చేయడానికి మరియు డీరియలైజ్ చేయడానికి ఉపయోగిస్తారు. మెమరీ కాపీ ఆపరేషన్ల సంఖ్యను తగ్గించడం మరియు డేటా-నిర్దిష్ట కంప్రెషన్ అల్గారిథమ్‌లను ఉపయోగించడం వంటి అదనపు ఆప్టిమైజేషన్ పద్ధతులను వర్తింపజేయడం ద్వారా మల్టీ-కోర్ మరియు మల్టీ-నోడ్ కాన్ఫిగరేషన్‌లలో పైథాన్ ప్రక్రియల మధ్య పెద్ద మొత్తంలో డేటా బదిలీని ఆప్టిమైజ్ చేయడానికి పికిల్ మిమ్మల్ని అనుమతిస్తుంది. ప్రోటోకాల్ యొక్క ఐదవ సంస్కరణ బ్యాండ్ వెలుపల ప్రసార మోడ్‌ను జోడించడం కోసం గుర్తించదగినది, దీనిలో ప్రధాన పికిల్ స్ట్రీమ్ నుండి డేటాను విడిగా ప్రసారం చేయవచ్చు.
  • డిఫాల్ట్‌గా, పికిల్ ప్రోటోకాల్ యొక్క నాల్గవ వెర్షన్ యాక్టివేట్ చేయబడింది, ఇది డిఫాల్ట్‌గా గతంలో అందించబడిన మూడవ వెర్షన్‌తో పోలిస్తే, అధిక పనితీరును మరియు ప్రసారం చేయబడిన డేటా పరిమాణంలో తగ్గింపును అనుమతిస్తుంది;
  • మాడ్యూల్ లో టైపింగ్ అనేక కొత్త ఫీచర్లు ప్రవేశపెట్టబడ్డాయి:
    • Класс టైప్‌డిక్ట్ కీలతో అనుబంధించబడిన డేటా కోసం (“TypedDict(‘Point2D’, x=int, y=int, label=str)”) రకం సమాచారం స్పష్టంగా పేర్కొనబడిన అనుబంధ శ్రేణుల కోసం.
    • రకం సాహిత్య, ఇది పరామితిని పరిమితం చేయడానికి లేదా కొన్ని ముందే నిర్వచించబడిన విలువలకు (“లిటరల్[‘కనెక్ట్’, ‘డిస్‌కనెక్ట్’]”) విలువను తిరిగి ఇవ్వడానికి మిమ్మల్ని అనుమతిస్తుంది.
    • రూపకల్పన "చివరి", ఇది మార్చలేని లేదా తిరిగి కేటాయించలేని వేరియబుల్స్, ఫంక్షన్‌లు, పద్ధతులు మరియు తరగతుల విలువలను నిర్వచించడం సాధ్యం చేస్తుంది ("pi: Final[float] = 3.1415926536").
  • బైట్‌కోడ్‌తో కంపైల్ చేసిన ఫైల్‌ల కోసం కాష్‌ని కేటాయించే సామర్థ్యం జోడించబడింది, ప్రత్యేక FS ట్రీలో సేవ్ చేయబడింది మరియు కోడ్‌తో డైరెక్టరీల నుండి వేరు చేయబడింది. బైట్‌కోడ్‌తో ఫైల్‌లను సేవ్ చేయడానికి మార్గం వేరియబుల్ ద్వారా సెట్ చేయబడింది పైథాన్‌పైకాచెప్రిఫిక్స్ లేదా ఎంపిక "-X pycache_prefix";
  • అమలు చేశారు విడుదలకు సమానమైన 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, మల్టీప్రాసెస్ కాన్ఫిగరేషన్‌లలో భాగస్వామ్య మెమరీ విభాగాల వినియోగాన్ని అనుమతిస్తుంది;
  • Windows ప్లాట్‌ఫారమ్‌లో, క్లాస్‌ని ఉపయోగించడానికి asyncio అమలు తరలించబడింది ProactorEventLoop;
  • కొత్త ఆబ్జెక్ట్ కోడ్ కాషింగ్ మెకానిజంను ఉపయోగించడం వలన LOAD_GLOBAL సూచనల పనితీరు సుమారుగా 40% పెరిగింది.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి