Pythonis 3.10 programmandi linguam

Post annum evolutionis notabilis emissio Pythonis 3.10 linguae programmationis exhibetur. Novus ramus unum et dimidium annis sustentabitur, post quem alius tres et dimidium anni crescent ut vulnerabilitates defigant.

Eodem tempore, alpha probatio Pythonis 3.11 ramus incepit (secundum novam schedulam evolutionis, opus in novo ramo incipit quinque mensibus ante emissionem rami prioris et pervenit ad alpha probationis stadium tempore proximae emissionis. ). Python 3.11 ramus alpha emissio erit per septem menses, quibus novae lineae adicientur et cimices figentur. Post hoc, beta probatio per tres menses exercebitur, in quibus accessio novarum notarum prohibebitur et omnis intentio cimices figendi reddetur. Proximis duobus mensibus ante emissionem ramus candidatus emissio in scaena erit, ubi ultima stabilizatio peragetur.

Nova additamenta in Pythone 3.10 includuntur:

  • Operatores "par" et "casus" perficiuntur ad exemplar adaptionis, quae codicem meliorem parat, adaptatio obiectiva Pythonis arbitrariae simpliciores efficiet, et auget codicem constantiam per typum staticum provectiorem recognitionem. Exsecutio multum similis est "par" operantis in Scala, Rust et F# comparata, quae effectum certae expressionis comparat cum indice exemplarium in caudices qui "casu" operante innituntur.

    deb.

    Res, tuples, indices, et arbitraria sequentia ad ligandas variabiles in valoribus exsistentibus exsolvere potes. Formulas nestas definire licet, additas condiciones "si" in Formula utere, larvis ("[x, y, *reliquis]"), clavis / valoris mappings (exempli gratia, {"Sed": b, "latency ": l} extrahere "bandwidth" et "latentiam" valores ex dictionario), extractum subtemplatas (":=" operator), utere nomine constantes in template. In classes, potest mos adaptare mores utendo modum "__match_)".

    ex dataclasses import dataclass @dataclass punctum: x: int y: int def ubi (punctum): punctum congruit: punctum (0, 0): print("Origin") casus Point(0, y): print(f" "Y={y}") casus Point(x, 0): print(f"X={x}") casus Point(): print("Alicubi") casus _: print("non punctum") aequare punctum: casus Point(x, y) si x == y: print(f"Y=X ad {x}") casus Point (x, y): print(f" Not in diametro") RED, UF, RED = 0, 1, 2 color compositus: casus RED: print ("rubrum video!") casus GREEN: print ("Gras viridis") casus RED: print (" Sentio Venetae conciliatus :(")

  • Nunc possibile est parenthesi in usu esse cum enuntiatione dividere definitionem collectionis procuratorum contextuum per plures lineas. Liceat etiam comma excedere post contextum finalem procurator in coetu: cum ( CtxManager1() ut ex.g.1, CtxManager2() ut ex.g.
  • Meliorus relatio codicis situm errorum ad capreolas clausas et citata in chordis literalis relatas. Exempli gratia, cum ue clausula est, pro syntaxi errorem in sequenti construendo referens, monstrator nunc aperturam ue elucidat et indicat clausuram clausuram non esse. Tabella "exemplum.py", line 1 expected = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' numquam clausi

    Syntaxis erroris nuntiis additis specialioribus: missing ":" symbolum ante truncum et in dictionariis, non separans tuplam cum parenthesi, deest comma in tabulis, denotans "experimentum" sine "excepto" et "tandem", utendo "= " instead of " = " in comparisons, specificing * expressions in f-chordis. Praeterea cavetur ut tota expressio problematica luceat, non solum principium, et magis explicata notitia de contextu errorum cum falsa incisatione coniungitur. >>> def foo(): ... si lel: ... x = 2 Tabularium "", linea 3 x = 2 ^ IndentationError: expectata impedimentum incisum postquam "si’ propositio in linea 2

    In erroribus typos causatis in nominibus attributorum et nominibus variantibus in functione, commendatio cum recto nomine est output. >>> collections.namedtoplo Traceback (ultimum vocant recentissimum): Fasciculus "", linea 1, in AttributeError: moduli 'collectiones' attributum 'nominatoplo' non habet. Nonne: namedtuple?

  • Ad instrumenta debugging et profilers, rerum vestigium, cum accurata linea numeri codicis exsecuti sunt, praebentur.
  • Addidit sys.flags.warn_default_encoding commendationem ad praemonitionem de erroribus potentialibus coniungendis cum TextIOWrapper et aperto () processus utf-8 tabellas encoded sine expresse denotans optionem (ASCII translitterandi adhibetur =Β» utf-8β€³' per default). Novus emissio etiam facultatem praebet "encoding="locale" definiendi facultatem ad modum scriptionis hodiernae loci.
  • Novus operator additus est moduli typing, qui instrumenta praebet ad annotationes specificandas, adhibitis syntaxi "X| Y "est eligere unum generum (X type vel Y type). def quadratum (number: int | float) -> int | float: return number ** 2 is equivalent to the supported construct: def square(number: Union[int, float]) -> Union[int, float]: return number ** 2
  • Operator Concatenatus et ParamSpec variabilis ad moduli typingam additae sunt, quae tibi permitto informationes additionales transire pro typo static reprimendo cum Callable utendo. Modulus typing etiam valores speciales TypeGuard addit ut rationes tutelae typus annotate et TypeAlias ​​ut alias typus explicite definias. StrCache: TypeAlias ​​= 'Cache[str]' # typus alias
  • Zip() functionem vexillum libitum "strictum" exercet, quod, cum specificatur, impedit num argumenta iterata sint eiusdem longitudinis. >>> album (rar('a', 'b', 'c'), (1, 2, 3), strict=Verum)) [('a', 1), ('b', 2). , ('c', 3)] >>> album (rar(range(3), ['fee', 'fi', 'fo', 'fum'], strict=Verum)) Traceback (recentissimi call ultimum )
  • Nova constructa in functionibus aiter() et anext() exsequendis analogorum asynchronorum ad functiones iter() et deinde () proponuntur.
  • Opus str(), bytes () et bytearray () conditorum cum parvis obiectis laborantibus 30-40% acceleratum est.
  • Numerus operationum importarum in modulo runpy reduxit. Mandatum "python3 -m moduli_name" nunc in mediocris 1.4 temporibus velocius decurrit ob reductionem modulorum importatorum ab 69 ad 51 .
  • LOAD_ATR instructio utitur caching mechanismo ad singulas opcodes, quae effecit ut laborem cum attributis regularibus ab usque ad 36% acceleraretur, et foramina ab usque ad 44%.
  • Cum Python cum optione "optimizationum" construendo, modus "-fno-semantic-interpositionis" nunc efficitur, quod permittit ut accelerare interpretem usque ad 30% ad aedificationem cum "communem" comparando. " optio.
  • Hashlib et ssl modulorum subsidia OpenSSL 3.0.0 adiecerunt ac subsidia OpenSSL versiones antiquiores esse 1.1.1.
  • Vetus parser remotus est, quod in priore ramo a PEG (Parsing elocutio grammatica) parser substitutum est. Modulus formatter remotus est. Ansa parametri ab assyncio API remota est. Methodi quae antea deprecata erant, remota sunt. Munera Py_UNICODE_str* quae chordae manipulate Py_UNICODE* remota sunt.
  • Distutils moduli deprecatus est et ad remotionem in Pythone 3.12 horarium est. Loco distutils commendatur ut instrumenta setup, packaging, suggestum, shutil, subprocessus et modulorum syconfig. The wstr structure in PyUnicodeObject deprecata est et ad remotionem accedenda est.

Source: opennet.ru