ืืืืจ ืฉื ื ืฉื ืคืืชืื, ืคืืจืกื ืืืืืืจื ืืืฉืืขืืชืืช ืฉื ืฉืคืช ืืชืื ืืช Python 3.11. ืืกื ืืฃ ืืืืฉ ืืืชืื ืืืฉื ืฉื ื ืืืฆื, ืืืืืจ ืืื ืืืฉื ืฉืืืฉ ืฉื ืื ืืืฆื ื ืืกืคืืช ืืืคืงื ืื ืชืืงืื ืื ืืืืืื ื ืงืืืืช ืชืืจืคื.
ืืืงืืื, ืืืื ืืืืงืืช ืืืคื ืฉื ืกื ืืฃ Python 3.12 (ืืืชืื ืืืื ืืืื ืื ืฉื ืืคืืชืื ืืืืฉ, ืืขืืืื ืขื ืกื ืืฃ ืืืฉ ืืชืืืื ืืืืฉื ืืืืฉืื ืืคื ื ืืฆืืืช ืืกื ืืฃ ืืงืืื ืืืืืขื ืืฉืื ืืืืงืืช ืืืคื ืขื ืืฉืืจืืจ ืืื. ). ืืกื ืืฃ ืฉื Python 3.12 ืืืื ืืืืืืจืช ืืืคื ืืืฉื ืฉืืขื ืืืืฉืื, ืืืืืื ืืชืืืกืคื ืชืืื ืืช ืืืฉืืช ืืืชืืงื ื ืืืืื. ืืืืจ ืืื, ืืืืื ื ืืจืกืืืช ืืื ืืืฉื ืฉืืืฉื ืืืืฉืื, ืืืืืื ืชืืืกืจ ืืืกืคืช ืคืืฆ'ืจืื ืืืฉืื ืืื ืชืฉืืืช ืืื ืชืืงืืฉ ืืชืืงืื ืืืืื. ืืืืืฉืืื ืืืืจืื ืื ืืคื ื ืืฉืืจืืจ, ืืกื ืืฃ ืืืื ืืฉืื ืืืขืื ืืฉืืจืืจ, ืื ืืืืฆืข ืืืฆืื ืกืืคื.
ืชืืกืคืืช ืืืฉืืช ืืคืืืชืื 3.11 ืืืืืืช:
- ื ืขืฉืชื ืขืืืื ืืฉืืขืืชืืช ืืื ืืืืขื ืืช ืืืืฆืืขืื. ืืกื ืืฃ ืืืืฉ ืืืื ืฉืื ืืืื ืืงืฉืืจืื ืืืืฆื ืืคืจืืกื ืืืืืขืช ืฉื ืงืจืืืืช ืคืื ืงืฆืืืช, ืฉืืืืฉ ืืืคืจืฉื ืื ืืืืจืื ืฉื ืคืขืืืืช ืกืื ืืจืืืืช (x+x, x*x, xx, a[i], a[i] = z, f(arg) C( arg), o.method(), o.attr = z, *seq), ืืื ืื ืืืคืืืืืืฆืืืช ืฉืืืื ื ืขื ืืื ืืคืจืืืงืืื Cinder ื-HotPy. ืืืชืื ืืกืื ืืขืืืก, ืืฉ ืขืืืื ืืืืืจืืช ืืืฆืืข ืืงืื ืฉื 10-60%. ืืืืืฆืข, ืืืืฆืืขืื ืืืืืืช ืืืืืงืืช ืฉื pyperformance ืขืื ื-25%.
ืื ืื ืื ื-bytecode caching ืขืืฆื ืืืืฉ, ืื ืฉืืคืืืช ืืช ืืื ืืืคืขืื ืฉื ืืืชืืจืืื ื-10-15%. ืืืืืืงืืื ืขื ืงืื ืืงืื ืืชืื ืืืงืฆืื ืืขืช ืืืืคื ืกืืื ืขื ืืื ืืืชืืจืืื, ืื ืฉืืืคืฉืจ ืืืื ืืช ืืฉืืืื ืฉื ืืืืื ืืืจืช ืงืื ืืชืื ืฉืืืืฅ ืืืืืืื ืืืืจืช ืืืืืืงืืื ืขื ืงืื ืฉืืืฆืื ืืืืืจืื ืืื ืื.
- ืืขืช ืืฆืืช ืืขืงืื ืฉืืื ืืืืืขืืช ืืืืื, ืืขืช ื ืืชื ืืืฆืื ืืืืข ืขื ืืืืืื ืฉืืจื ืืฉืืืื (ืืขืืจ ืจืง ืืฉืืจื ืืืืืฉื ืืืื ืืคืจื ืืืื ืืืง ืืืฉืืจื ืืจื ืืฉืืืื). ื ืืชื ืืงืื ืืืืข ืืขืงื ืืืจืื ืื ืืจื ื-API ืืืืฉืชืืฉ ืื ืืื ืืืคืืช ืืืจืืืช ืงืื ืืชืื ืืืืืืช ืืืืงืื ืกืคืฆืืคื ืืงืื ืืืงืืจ ืืืืฆืขืืช ืฉืืืช codeobject.co_positions() ืื ืคืื ืงืฆืืืช C API PyCode_Addr2Location(). ืืฉืื ืื ืืงื ืืจืื ืืืชืจ ืขื ื ืืคืื ืืืืื ืขื ืืืืืืงืื ืืืืื ืืงืื ื ืื, ืงืจืืืืช ืคืื ืงืฆืืืช ืืจืืืืช ืืืืืืืื ืืจืืชืืืืื ืืืจืืืื. ืขืงืืืช (ืืฉืืื ืืืืจืื ื ืืืืจืื ื): ืงืืืฅ "calculation.py", ืฉืืจื 54, ืืชืืฆืื = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: ืืืืงื ืืืคืก
- ื ืืกืคื ืชืืืื ืืงืืืฆืืช ืืจืืืื, ืื ืฉื ืืชื ืืชืืื ืืช ืืช ืืืืืืช ืืืฆืืจ ืืืขืื ืืกืคืจ ืืจืืืื ืฉืื ืื ืืืช ืืืช. ืืื ืืงืืฅ ืืจืืืื ืืจืืืื ืืืืขืืืช ืืืชื ืืื, ืืืฆืขื ืกืืื ืืจืืืื ืืืฉืื ExceptionGroup ื-BaseExceptionGroup, ืืืืืืื "except*" ื ืืกืฃ ืืื ืืืืืืฉ ืืจืืืื ืืืืืื ืืงืืืฆื.
- ืืฉืืื add_note() ื ืืกืคื ืืืืืงื BaseException, ืืืืคืฉืจืช ืื ืืฆืจืฃ ืืขืจืช ืืงืกื ืืืจืื, ืืืฉื, ืืืกืคืช ืืืืข ืืงืฉืจื ืฉืืื ื ืืืื ืืืฉืจ ืืืจืื ื ืืจืง.
- ื ืืกืฃ ืกืื ืขืฆืื ืืืืื ืืื ืืืืฆื ืืช ืืืืชื ืืคืจืืืช ืื ืืืืืช. ื ืืชื ืืืฉืชืืฉ ื-self ืืื ืืืืกืืฃ ืืขืจืืช ืืฉืืืืช ืืืืืืจืืช ืืืคืข ืฉื ืืืืืงื ืฉืื ืืฆืืจื ืคืฉืืื ืืืชืจ ืืืฉืจ ืฉืืืืฉ ื-TypeVar. class MyLock: def __enter__(self) -> Self: self.lock() return self
- ื ืืกืฃ ืกืื LiteralString ืืืืื ืฉืืืื ืืืืื ืจืง ืืืืจืื ืืืจืืืช ืืชืืืืื ืืกืื LiteralString (ืืืืืจ ืืืจืืืืช ืืฉืืคืืช ื-LiteralString, ืื ืื ืืืจืืืืช ืฉืจืืจืืชืืืช ืื ืืฉืืืืืช). ื ืืชื ืืืฉืชืืฉ ืืกืื LiteralString ืืื ืืืืืื ืืช ืืขืืจืช ืืจืืืื ืืื ืฉื ืืืจืืืช ืืคืื ืงืฆืืืช, ืืืืคื ืฉืจืืจืืชืืช ืฉื ืืืงื ืืืจืืืืช ืฉืืื ืืืื ืืืืืื ืืคืืืขืืืืช, ืืืฉื, ืืขืช ืืฆืืจืช ืืืจืืืืช ืขืืืจ ืฉืืืืชืืช SQL ืื ืคืงืืืืช ืืขืืคืช. def run_query(sql: LiteralString) -> ... ... def caller( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> None: run_query("SELECT * FROM students") # ok run_query(literal_string) # ok run_query( "SELECT * FROM" + literal_string) # ok run_query(arbitrary_string) # Error run_query( # Error f"SELECT * FROM students WHERE name = {arbitrary_string}" )
- ืืกืื TypeVarTuple ื ืืกืฃ, ืืืืคืฉืจ ืฉืืืืฉ ืืื ืจืืืช ืืฉืชื ืืช, ืื ืืืื ื-TypeVar, ืืืืกืื ืื ืกืื ืืื, ืืื ืืกืคืจ ืฉืจืืจืืชื ืฉื ืกืืืื.
- ืืกืคืจืืื ืืกืื ืืจืืืช ืืืืืช ืืช ืืืืื tomllib ืขื ืคืื ืงืฆืืืช ืื ืืชืื ืคืืจืื TOML.
- ืืคืฉืจ ืืกืื ืืืื ืืื ืืืืืื ืฉื ืืืืื ืื ืืืงืืืื (TypedDict) ืขื ืชืืืืืช Required ื-NotRequired ืืื ืืงืืืข ืฉืืืช ื ืืจืฉืื ืืืืคืฆืืื ืืืื (ืืืจืืจืช ืืืื, ืื ืืฉืืืช ืืืืฆืืจืื ื ืืจืฉืื ืื ืืคืจืืืจ ืืืืื ืืื ื ืืืืืจ ื-False). class Movie(TypedDict): title: str year: NotRequired[int] m1: Movie = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # ืืืฉืืจ (ืฉืื ืืฉื ื ืืื ืืืคืฆืืื ืื) m3: ืกืจื = {"ืฉื ื": 2022} # ืฉืืืื, ืฉืื ืืืืชืจืช ืื ืืจืฉ ืื ืืืื)
- ืืืืงืช ื-TaskGroup ื ืืกืคื ืืืืืื asyncio ืขื ืืืืขืช ืื ืื ืืงืฉืจ ืืกืื ืืจืื ื ืฉืืืื ืืืฉืืืช ืงืืืฆืช ืืฉืืืืช. ืืืกืคืช ืืฉืืืืช ืืงืืืฆื ืืชืืฆืขืช ืืืืฆืขืืช ืฉืืืช create_task() . async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("ืฉืชื ืืืฉืืืืช ืืืฉืืื ืืขืช ."")
- ืืชืืืกืฃ @dataclass_transform decorator ืขืืืจ ืืืืงืืช, ืฉืืืืช ืืคืื ืงืฆืืืช, ืืืฉืจ ืฆืืื, ืืขืจืืช ืืืืงืช ืืกืื ืืกืืืืช ืืชืืืืกืช ืืืืืืืงื ืืืืื ืืื ืืฉืชืืฉืช ื[email protected] decorator. ืืืืืื ืืืื, ืืืืืงื CustomerModel, ืืขืช ืืืืงืช ืกืืืื, ืชืขืืื ืืืืื ืืืืืงื ืขื ืืืงืืจืืืจ @dataclasses.dataclass, ืืืืืจ. ืืืขืืช ืฉืืื __init__ ืฉืืงืืืช ืืฉืชื ื ืืืื ืืฉื. @dataclass_transform() class ModelBase: ... class CustomerModel(ModelBase): id: int name: str
- ืืืืืืืื ืจืืืืจืืื, ื ืืกืคื ืืืืืืช ืืืฉืชืืฉ ืืงืืืืฅ ืืืืื ((?>...)) ืืืืืชืื ืจืืืฉื ืืื (*+, ++, ?+, {m,n}+).
- ื ืืกืคื ืืคืฉืจืืช ืฉืืจืช ืืคืงืืื "-P" ืืืฉืชื ื ืืกืืืื PYTHONSAFEPATH ืืื ืืืื ืฆืืจืืฃ ืืืืืืื ืฉื ื ืชืืื ืงืืฆืื ืฉืขืืืืื ืืืืืช ืื ืืืืืื ื-sys.path.
- ืืื ืืฉืืจืืช py.exe ืขืืืจ ืคืืืคืืจืืช Windows ืฉืืคืจ ืืืืคื ืืฉืืขืืชื, ืืืืกืืฃ ืชืืืื ืืชืืืืจ "-V:". / " ืื ืืกืฃ ื "- . "
- ืคืงืืืืช ืืืงืจื ืจืืืช ื-C API ืืืืจืืช ืืคืื ืงืฆืืืช ืืืืืขืืช ืจืืืืืช ืื ืกืืืืืช.
- ืืืืืืืื uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev ื-sunau ืืืฆืื ืืฉืืืืฉ ืืืืกืจื ืืคืืืชืื ืฉืืจืืจ 3.13. ืืืกืจื ืคืื ืงืฆืืืช PyUnicode_Encode*.
ืืงืืจ: OpenNet.ru