Famoahana ny fiteny fandaharana Python 3.8

Rehefa afaka herintaona sy tapany ny fampandrosoana aseho famoahana fiteny fandaharana lehibe Python 3.8. Fanavaozana fanitsiana ho an'ny sampana Python 3.8 nomanina famoahana ao anatin'ny 18 volana. Hapetraka mandritra ny 5 taona hatramin'ny Oktobra 2024 ny vulnerabilité critique. Ny fanavaozana fanitsiana ho an'ny sampana 3.8 dia havoaka isaky ny roa volana, miaraka amin'ny famoahana fanitsiana voalohany an'ny Python 3.8.1 voalahatra amin'ny volana Desambra.

Anisan'ny nampiana fanavaozana:

  • fanohanana asa fanendrena ao anatin'ny fomba fiteny sarotra. Miaraka amin'ny opérateur ":=" vaovao, dia azo atao ny manatanteraka asa fanomezan-danja ao anatin'ny fitenenana hafa, ohatra, mba hialana amin'ny antso avo roa heny amin'ny fanambarana misy fepetra sy rehefa mamaritra ny tadivavarana:

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

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

  • fanohanana syntax vaovao hamaritana ny tohan-kevitry ny asa. Rehefa manisa tohan-kevitra mandritra ny famaritana asa, dia azonao atao izao ny mamaritra ny "/" hanasaraka ny tohan-kevitra izay tsy azo omena soatoavina fotsiny mifototra amin'ny filaharan'ireo soatoavina mandritra ny fiantsoana asa, avy amin'ny tohan-kevitra azo omena. amin'ny filaharana rehetra (variable=value syntax) ). Amin'ny lafiny azo ampiharina, ny endri-javatra vaovao dia mamela ny fiasa amin'ny Python haka tahaka tanteraka ny fitondran-tenan'ny fiasa efa misy ao amin'ny C, ary koa mba hisorohana ny fatorana amin'ny anarana manokana, ohatra, raha kasaina hovana amin'ny ho avy ny anaran'ny parameter.

    Ny saina "/" dia mameno ny saina "*" nampiana teo aloha, manasaraka ny fari-piadidiana izay tsy misy afa-tsy fanendrena amin'ny endrika "variable=value". Ohatra, ao amin'ny fiasa "def f(a, b, /, c, d, *, e, f):" ny variables "a" sy "b" dia tsy azo omena afa-tsy amin'ny filaharana voatanisa ny soatoavina. ,
    Variable "e" sy "f", amin'ny alàlan'ny fanendrena "variable=value", ary ny variables "c" sy "d" amin'ny iray amin'ireto fomba manaraka ireto:

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

  • nanampy ny C API
    hanitsy ny masontsivana fanombohana Python, ahafahana mifehy tanteraka ny rehetra fanahafana ary manome tobim-pikarakarana lesoka mandroso. Ny API natolotra dia manamora ny fampidirana ny fampiasa mpandika teny Python amin'ny rindranasa C hafa;

  • ampiharina protocole Vectorcall vaovao ho an'ny fidirana haingana kokoa amin'ny zavatra voasoratra amin'ny fiteny C. Ao amin'ny CPython 3.8, ny fidirana amin'ny Vectorcall dia mbola voafetra ho an'ny fampiasana anatiny ihany, ny fifindrana amin'ny sokajy API azo idirana ho an'ny besinimaro dia nomanina ao amin'ny CPython 3.9;
  • nanampy miantso ny Runtime Audit Hooks, izay manome fampiharana sy rafitra amin'ny Python amin'ny fidirana amin'ny fampahalalana ambany momba ny fandrosoan'ny script mba hanamarinana ny hetsika natao (ohatra, azonao atao ny manara-maso ny fanafarana modules, manokatra rakitra, mampiasa trace, miditra amin'ny sockets tambajotra, mihazakazaka code amin'ny exec, eval ary run_mod);
  • Ao amin'ny module tezitra be foana isika antoka fanohanan'ny protocol Pickle 5, ampiasaina amin'ny fanaovana serializing sy deserializing zavatra. Pickle dia ahafahanao manatsara ny famindrana angon-drakitra be dia be eo amin'ny fizotry ny Python amin'ny fanamafisana maro-fototra sy multi-node amin'ny alàlan'ny fampihenana ny isan'ny asa kopia fitadidiana ary fampiharana teknika fanatsarana fanampiny toy ny fampiasana algorithm famandrihan-toerana manokana. Ny dikan-teny fahadimy amin'ny protocol dia misongadina amin'ny fanampim-panampiana fomba fifindran'ny tarika ivelan'ny tarika, izay ahafahan'ny angon-drakitra alefa misaraka amin'ny renirano lehibe.
  • Amin'ny alàlan'ny default, ny dikan-teny fahefatra amin'ny protocol Pickle dia mavitrika, izay, raha ampitahaina amin'ny dikan-teny fahatelo natolotry ny default, dia mamela ny fampisehoana ambony kokoa sy ny fampihenana ny haben'ny angon-drakitra alefa;
  • Ao amin'ny module fanoratana Misy endri-javatra vaovao maromaro nampidirina:
    • kilasy TypedDict ho an'ny laharan-tariby mifandray izay ahitana fampahalalana karazana voafaritra mazava ho an'ny angona mifandray amin'ny fanalahidy (“TypedDict('Point2D', x=int, y=int, label=str)”).
    • karazana ara-bakiteny, izay ahafahanao mametra ny mari-pamantarana na mamerina ny sanda amin'ny soatoavina efa voafaritra mialoha (“Literal['connected', 'disconnected']”).
    • Fanorenana "Final", izay ahafahana mamaritra ny sandan'ny variables, ny fiasa, ny fomba ary ny kilasy izay tsy azo ovaina na averina ("pi: Final[float] = 3.1415926536").
  • Nampiana ny fahafahana manendry cache ho an'ny rakitra natambatra miaraka amin'ny bytecode, voatahiry ao anaty hazo FS misaraka ary misaraka amin'ny lahatahiry misy ny code. Ny lalan'ny fitahirizana rakitra miaraka amin'ny bytecode dia apetraka amin'ny alalan'ny variable PYTHONPYCACHEPREFIX na ny safidy "-X pycache_prefix";
  • ampiharina ny fahafahana mamorona debug builds an'ny Python izay mampiasa ABI mitovy amin'ny famoahana, izay ahafahanao mampiditra fanitarana voasoratra amin'ny fiteny SI, natambatra ho an'ny famoahana stable, amin'ny fananganana debug;
  • Ny f-strings (teny ara-bakiteny misy endrika 'f') dia manome fanohanana ny = operator (ohatra, "f'{expr=}'"), izay ahafahanao mamadika teny ho lahatsoratra ho mora kokoa ny debugging. Ohatra:

    ››› mpampiasa = 'eric_idle'
    ››› mpikambana_hatramin'ny = date(1975, 7, 31)
    ››› f'{user=} {mpikambana_hatramin'ny=}'
    "user='eric_idle' member_since=datetime.date(1975, 7, 31)"

  • Expression "hanohy» avela hampiasaina ao anaty sakana iray farany;
  • Nampiana module vaovao multiprocessing.shared_memory, mamela ny fampiasana ny fizarana fahatsiarovana iombonana amin'ny fanamafisana multiprocess;
  • Ao amin'ny sehatra Windows, ny fampiharana asyncio dia nafindra hampiasa ny kilasy ProactorEventLoop;
  • Nitombo 40% eo ho eo ny fahombiazan'ny toromarika LOAD_GLOBAL noho ny fampiasana mekanika caching code code vaovao.

Source: opennet.ru

Add a comment