Pythonis 3.11 programmandi linguam

Post annum evolutionis notabilis emissio Pythonis 3.11 linguae programmationis divulgata est. Novus ramus annum et dimidium sustinebitur, post quem inaequalitas cum vulnerabilities in alium tres annos et dimidium formabitur.

Eodem tempore, alpha probatio Pythonis 3.12 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.12 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.11 includuntur:

  • Opus insigne factum est ad optimize effectus. Novus ramus includit mutationes ad accelerationem et instruere functiones vocatas, usus celerum interpretum operationum typicarum (x+x, x*x, xx, a[i], a[i] = z, f(. arg) C( arg), o.method(), o.attr = z, *seq), nec non optimizations ab inceptis Cinder et HotPy praeparatis. Secundum genus oneris auctum est celeritati codicis per 10-60% supplicium. In mediocris, effectus cum praeteriens testam pyperformancem 25% augetur.

    Mechanismum bytecode caching redintegratum est, quod interpres initium temporis per 10-15% redegit. Res cum codice et bytecode nunc statice ab interprete collocantur, quae effecit ut gradus explicandi bytecode e cella extracto et convertendo cum codice ad collocationem in memoria dynamica resecarentur.

  • Cum vestigia vocationis in diagnostica nuntia ostendentes, informationes praebentur de expressione quae errorem effecit (antea linea tantum extulit sine explicatione quae pars lineae errorem effecit). Notitiae extensae notiones etiam per API restitui possunt et singula bytecode ad describendas instructiones ad certum locum in fonte codice utens in codeobject.co_positions() methodo seu PyCode_Addr2Location() C API functione. Mutatio valde simplificat problemata debugging consociata cum obiectis nidificatis, multiplex munus vocat, et expressiones arithmeticas multiplices. Traceback (recentissimi vocant novissimum): Fasciculus "calculation.py", linea 54, eventum = (x/y/z) * (a/b/c) ~~~~~~^~~ ZeroDivisionError: divisio nulla
  • Addidit subsidium coetus exceptionum, dans programma facultatem generandi et processum varias exceptiones simul. Novae exceptionum rationes, exceptiones Group et BaseExceptionGroup proponuntur ad plures exceptiones aggregandas earumque iuncturam invocationem, et dictio "nisi" additur exceptionibus separatis a communi.
  • Modus BaseExceptionis classi additus est, quae te permittit ut notam textus exceptioni apponas, exempli gratia, contextual informationes addere non available tempore exceptionis foras.
  • Proprium genus Sui additum est ad repraesentandum genus venae privatae. Sui ipsius methodi annotare possunt quae simpliciori modo instantia sui generis reddunt quam utendo TypeVar. genus MyLock: def __enter__(se) -> Self: self.lock() return self
  • Adiectum est speciale genus literalis quod solum includere potest chordas literales, quae cum typo literalis componuntur (i.e. nudae chordae et chordae generis litteralis, sed non arbitrariae vel chordae str generis compositae). Typus literalis adhiberi potest ad modum chordarum argumentorum ad functiones transeuntes, substitutio arbitraria partium chordarum in quibus vulnerabilitates ducere potest, exempli gratia, cum chordas generans pro SQL queries vel testa imperat. def run_query(sql: LiteralString) -> ... ... RECENS (arbitrary_string: str, query_string: literalis, table_name: literalString, ) -> Nulla: run_query("SELECT * EX studentium") # ok run_query(literal_string) # ok run_query("SELECT * FROM " + literal_string) # ok run_query(arbitrary_string) # error run_query(# error f" SELECT * EX studentibus WHERE nomen = {arbitrary_string}")
  • TypeVarTuple genus adiectum est, quod usum generum variabilium, dissimilis TypeVar, permittit, non unum genus, sed arbitrarium numerum generum obtegens.
  • Vexillum bibliothecae tomllib moduli cum functionibus pro TOML forma parsing comprehendit.
  • Facultas notandi singula elementa dictionariorum generum (TypedDict) cum notis requisitis et notis requisitis praebetur ad determinandas agros requisitos et ad libitum (per default, omnes agri declarati requiruntur si modulus totalis falsitatis non positus est). genus Movie (TypedDict): titulus: str annus: NotRequired[int]m1: cinema = {"title": "Nigrum Panther", "annus": 2018 # OK m2: Movie = {"title": "Bella stellata" } # OK (annus ager libitum est) m3: Movie = {"annus": 2022} # Error, titulus campus inquisitus non impletus est)
  • Classis TaskGroup ad moduli asynchroni exsequenda addita est procuratori contextus asynchroni qui negotium coetus ad perficiendum exspectat. Operas ad coetum adiungens fit utens modum crea_task(). async def main(): async cum asyncio.TaskGroup() ut tg: negotium1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print ("Utrumque negotium nunc explevit.")
  • Decorator classium, rationum ac functionum @dataclass_transformia adiecta est, cum specificatur, genus tessellati static tractat obiecto quasi usura ornamentorum @dataclasses.dataclass. In exemplo infra, CustomerModel classis typo-repressa erit eodem modo ac classe cum ornamentis @dataclasses.dataclass, i.e. sicut __init__ modum habens, qui id et nomen variabilium concedit. @dataclass_transform() class ModelBase: ... class CustomerModel(ModelBase): id: int name: str
  • Addidit facultatem utendi coagmentationem atomicam ((?>…)) et quantitatis zeli (*+, ++, ?+, {m,n}+) in expressionibus regularibus.
  • Addidit "-P" mandatum rectae optionis et ambitus PYTHONSAFEPATH variabilis ad inactivationem latae sententiae potentialiter tutae file semitae ad sys.path.
  • Insigniter emendavit py.exe utilitatem pro catasta Fenestra, quae nunc "-V" syntaxin sustinet. / " praeter "- . Β».
  • Multi Macri in C API conversi sunt ad functiones inlineas normales vel staticas.
  • The uu, cgi, tibiae, crypt, aifc, fRUS, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, et sunau moduli deprecata et tollenda in Pythone. 3.13 dimittis. Remota PyUnicode_Encode * munera.

Source: opennet.ru