ืืืืจ ืฉื ื ืฉื ืคืืชืื ืืืฆืืช ืืืืืืจื ืืืฉืืขืืชืืช ืฉื ืฉืคืช ืืชืื ืืช Python 3.10. ืืกื ืืฃ ืืืืฉ ืืืชืื ืืืฉื ืฉื ื ืืืฆื, ืืืืืจ ืืื ืืืฉื ืฉืืืฉ ืฉื ืื ืืืฆื ื ืืกืคืืช ืืืคืงื ืื ืชืืงืื ืื ืืืืืื ื ืงืืืืช ืชืืจืคื.
ืืืงืืื, ืืืื ืืืืงืืช ืืืคื ืฉื ืกื ืืฃ Python 3.11 (ืืืชืื ืืืื ืืืื ืื ืฉื ืืคืืชืื ืืืืฉ, ืืขืืืื ืขื ืกื ืืฃ ืืืฉ ืืชืืืื ืืืืฉื ืืืืฉืื ืืคื ื ืืฆืืืช ืืกื ืืฃ ืืงืืื ืืืืืขื ืืฉืื ืืืืงืืช ืืืคื ืขื ืืฉืืจืืจ ืืื. ). ืืกื ืืฃ ืฉื Python 3.11 ืืืื ืืืืืืจืช ืืืคื ืืืฉื ืฉืืขื ืืืืฉืื, ืืืืืื ืืชืืืกืคื ืชืืื ืืช ืืืฉืืช ืืืชืืงื ื ืืืืื. ืืืืจ ืืื, ืืืืื ื ืืจืกืืืช ืืื ืืืฉื ืฉืืืฉื ืืืืฉืื, ืืืืืื ืชืืืกืจ ืืืกืคืช ืคืืฆ'ืจืื ืืืฉืื ืืื ืชืฉืืืช ืืื ืชืืงืืฉ ืืชืืงืื ืืืืื. ืืืืืฉืืื ืืืืจืื ืื ืืคื ื ืืฉืืจืืจ, ืืกื ืืฃ ืืืื ืืฉืื ืืืขืื ืืฉืืจืืจ, ืื ืืืืฆืข ืืืฆืื ืกืืคื.
ืชืืกืคืืช ืืืฉืืช ืืคืืืชืื 3.10 ืืืืืืช:
- ืืืืืข ืืืคืจืืืจืื ืฉื "ืืชืืื" ื"ืืงืจื" ืืืชืืืช ืชืื ืืืช, ืืืฉืคืจืื ืืช ืงืจืืืช ืืงืื, ืืคืฉืืื ืืช ืืืชืืื ืฉื ืืืืืืงืื Python ืฉืจืืจืืชืืื ืืืืืืืื ืืช ืืืื ืืช ืืงืื ืืืืฆืขืืช ืืืืงืช ืกืื ืกืืื ืืชืงืื. ืืืืฉืื ืืืื ืืืื ืืืืคืจืืืจ "ืืชืืื" ืืืกืืคืง ื-Scala, Rust ื-F#, ืืฉืจ ืืฉืืื ืืช ืืชืืฆืื ืฉื ืืืืื ืฉืฆืืื ืขื ืจืฉืืื ืฉื ืชืื ืืืช ืืจืฉืืืืช ืืืืืงืื ืืืืืกืกืื ืขื ืืืืคืจืืืจ "case".
def http_error(status): ืกืืืืก ืืชืืื: ืืงืจื 400: ืืืืจืช ืืงืจื "Bad request" case 401|403|404: ืืืืจื "Not allowed" ืืงืจื 418: ืืืืจื "I'm a teapot" case _: return "Something else"
ืืคืฉืจ ืืคืจืง ืืืืืืงืืื, ืืืคืืื, ืจืฉืืืืช ืืจืฆืคืื ืฉืจืืจืืชืืื ืืื ืืืื ืืฉืชื ืื ืขื ืกืื ืขืจืืื ืงืืืืื. ืืืชืจ ืืืืืืจ ืชืื ืืืช ืืงืื ื ืืช, ืืืฉืชืืฉ ืืชื ืื "ืื" ื ืืกืคืื ืืชืื ืืช, ืืืฉืชืืฉ ืืืกืืืช ("[x, y, *rest]"), ืืืคืื ืืคืชื/ืขืจื (ืืืืืื, {"ืจืืื ืคืก": b, "ืฉืืืื โ: l} ืืื ืืืืฅ ืขืจืื "ืจืืื ืคืก" ื-"ืืฉืืื" ืืืืืื), ืืืืฅ ืชืื ืืืช ืืฉื ื (":=" ืืืคืจืืืจ), ืืฉืชืืฉ ืืงืืืขืื ืืขืื ืฉื ืืชืื ืืช. ืืืืืงืืช, ื ืืชื ืืืชืืื ืืืฉืืช ืืช ืืชื ืืืืช ืืืชืืื ืืืืฆืขืืช ืฉืืืช "__match__()".
ื-dataclasses ืืืืื โโdataclass @dataclass class Point: x: int y: int def whereis(point): match point: case Point(0, 0): print("Origin") case Point(0, y): print(f" Y={y}") case Point(x, 0): print(f"X={x}") case Point(): print("ืืงืื ืืืจ") case _: print("ืื ื ืงืืื") ืืชืืื point: case Point(x, y) if x == y: print(f"Y=X at {x}") case Point(x,y): print(f"ืื ืืืืืกืื") ืืืื, ืืจืืง, BLUE = 0, 1, 2 ืืชืืืช ืฆืืข: case RED: print(โืื ื ืจืืื ืืืื!โ) case GREEN: print(โGrass is greenโ) case BLUE: print(โI'm feeling the blues :(โ)
- ืืขืช ื ืืชื ืืืฉืชืืฉ ืืกืืืจืืื ืืืฉืคื with ืืื ืืคืฆื ืืช ืืืืืจื ืฉื ืืืกืฃ ืฉื ืื ืืื ืืงืฉืจ ืขื ืคื ื ืืกืคืจ ืงืืืื. ืืืชืจ ืื ืืืฉืืืจ ืคืกืืง ืืืจื ืื ืื ืืืงืฉืจ ืืกืืคื ืืงืืืฆื: ืขื ( CtxManager1() ืืืืืื1, CtxManager2() ืืืืืื2, CtxManager3() ืืืืืื3, ): ...
- ืืืืื ืืฉืืคืจ ืฉื ืืืงืื ืืงืื ืฉื ืฉืืืืืช ืืงืฉืืจืืช ืืกืืืจืื ืื ืกืืืจืื ืืืจืืืืช ืืืืืืื ืืืจืืืช. ืืืืืื, ืืืฉืจ ืืฉ ืกื ืกืืืจ ืื ืกืืืจ, ืืืงืื ืืืืื ืขื ืฉืืืืช ืชืืืืจ ืืืื ื ืืื, ืืืฆืืืข ืืขืช ืืืืืฉ ืืช ืืกืืืจ ืืคืืชื ืืืฆืืื ืฉืืื ืืืืง ืกืืืจื. ืงืืืฅ "example.py", ืฉืืจื 1 ืฆืคืื = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' ืืขืืื ืื ืืื ืกืืืจ
ื ืืกืคื ืขืื ืืืืขืืช ืฉืืืื ืืืืืืืช ืืชืืืืจ: ืืกืจ ืกืื ":" ืืคื ื ืืืืง ืืืืืืื ืื, ืื ืืคืจืืช ืืืคืื ืขื ืกืืืจืืื, ืืกืจ ืคืกืืง ืืจืฉืืืืช, ืฆืืื ืืืืง "ื ืกื" ืืื "ืืืขื" ื"ืกืืฃ ืกืืฃ", ืืืืฆืขืืช "= " ืืืงืื "= =" ืืืฉืืืืืช, ืฆืืื *-ืืืืืืื ื-f-strings. ืื ืืกืฃ, ืืื ืืืืื ืฉืื ืืืืืื ืืืขืืืชื ืืืืืฉ, ืื ืจืง ืืืชืืื, ืืืืืข ืืคืืจืฉ ืืืชืจ ืขื ืืืงืฉืจ ืฉื ืฉืืืืืช ืืงืฉืืจืืช ืืืืื ืฉืืืื. >>> def foo(): ... if lel: ... x = 2 ืงืืืฅ " ", ืฉืืจื 3 x = 2 ^ IndentationError: ืฆืคื ืืืกืื ืืืื ืืืจื ืืฆืืจืช 'if' ืืฉืืจื 2
ืืฉืืืืืช ืฉื ืืจืื ืืฉืืืืืช ืืงืืื ืืฉืืืช ืฉื ืชืืื ืืช ืืฉืืืช ืืฉืชื ืื ืืคืื ืงืฆืื, ืืชืงืืืช ืืืืฆื ืขื ืืฉื ืื ืืื. >>>collections.namedtoplo ืขืงืืืช (ืืฉืืื ืืืืจืื ื ืืืืจืื ื): ืงืืืฅ ยซ ", ืฉืืจื 1, ื AttributeError: ืืืืืื 'ืืืกืคืื' ืืื ืชืืื ื 'namedtoplo'. ืืื ืืชืืืื ืช ื: namedtuple?
- ืขืืืจ ืืืื ืืืืชืืจ ืืืืื ืืคืจืืคืืืื, ืืืจืืขื ืืขืงื ืืกืืคืงืื ืขื ืืกืคืจื ืืฉืืจืืช ืืืืืืงืื ืฉื ืืงืื ืืืืืฆืข.
- ืืืกืคื ืืช ืืืืืจื sys.flags.warn_default_encoding ืืื ืืืฆืื ืืืืจื ืืืื ืฉืืืืืช ืืคืฉืจืืืช ืืงืฉืืจืืช ื-TextIOWrapper ื-open() ืืขืืืื ืงืืฆืื ืืงืืืืื ื-UTF-8 ืืืื ืืฆืืื ืืืคืืจืฉ ืืช ืืืคืฉืจืืช 'encoding=ยปutf-8โณ' (ืงืืืื ASCII ืืฉืืฉ ืืืจืืจืช ืืืื) . ืืืืืืจื ืืืืฉื ืืกืคืงืช ืื ืืช ืืืืืืช ืืฆืืื ืขืจื 'encoding="locale"' ืืื ืืืืืืจ ืืช ืืงืืืื ืืืชืืกืก ืขื ืืืงืื ืื ืืืื.
- ืืืืืื ืืืงืืื ื ืืกืฃ ืืืคืจืืืจ ืืืฉ, ืืืกืคืง ืืืื ืืฆืืื ืืขืจืืช ืกืื, ืืืืคืฉืจ ืฉืืืืฉ ืืชืืืืจ "X | Y" ืืื ืืืืืจ ืืื ืืืกืืืื (ืกืื X ืื ืกืื Y). def square(ืืกืคืจ: int | float) -> int | float: ืืกืคืจ ืืืืจื ** 2 ืฉืืื ืขืจื ืืืื ื ืฉื ืชืื ืืขืืจ: def square(ืืกืคืจ: Union[int, float]) -> Union[int, float]: ืืกืคืจ ืืืืจื ** 2
- ืืืคืจืืืจ Concatenate ืืืืฉืชื ื ParamSpec ื ืืกืคื ืืืืืื ืืืงืืื, ืืืืคืฉืจืื ืืืขืืืจ ืืืืข ื ืืกืฃ ืืืืืงืช ืกืื ืกืืื ืืขืช ืฉืืืืฉ ื-Callable. ืืืืื ืืืงืืื ืืืกืืฃ ืื ืขืจืืื ืืืืืืื TypeGuard ืืืืกืคืช ืืขืจืืช ืืคืื ืงืฆืืืช ืืื ืช ืกืื ื-TypeAlias โโืืืืืจื ืืคืืจืฉืช ืฉื ืืื ืื ืกืื. StrCache: TypeAlias โโโโ= 'Cache[str]' # ืืื ืื ืืกืื
- ืืคืื ืงืฆืื zip() ืืืืฉืืช ืืื "strict" ืืืคืฆืืื ืื, ืืฉืจ, ืืืฉืจ ืฆืืื, ืืืืง ืื ืืืจืืืื ืืื ืืืืขืืจืื ืื ืืืืชื ืืืจื. >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True)) [('a', 1), ('b', 2) , ('c', 3)] >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True)) Traceback (ืืฉืืื ืืืืจืื ื ืืืืจืื ื ): โฆ ValueError: zip() ืืจืืืื ื 2 ืืจืื ืืืจืืืื ื 1
- ืคืื ืงืฆืืืช ืืืื ืืช ืืืฉืืช aiter() ื-anext() ืืืฆืขืืช ืขื ืืืฉืื ืื ืืืืื ืืกืื ืืจืื ืืื ืืคืื ืงืฆืืืช iter() ื-next().
- ืืขืืืื ืฉื ืืื ืืื str(), bytes() ื- bytearray() ืืขืช ืขืืืื ืขื ืืืืืืงืืื ืงืื ืื ืืืืฆื ื-30-40%.
- ืืคืืืช ืืช ืืกืคืจ ืคืขืืืืช ืืืืืื โโืืืืืื runpy. ืืคืงืืื "python3 -m module_name" ืคืืขืืช ืืขืช ืืืืืฆืข ืคื 1.4 ืืืจ ืืืชืจ ืขืงื ืืคืืชืช ืืืืืืืื ืืืืืืืื ื-69 ื-51.
- ืืืจืืช LOAD_ATTR ืืฉืชืืฉืช ืืื ืื ืื ืืืืื ืขืืืจ ืงืืืื ืืืืืื, ืื ืฉืืืคืฉืจ ืืืืืฅ ืืช ืืขืืืื ืขื ืชืืื ืืช ืจืืืืืช ืืขื 36%, ืืขื ืืจืืฆืื ืืขื 44%.
- ืืขืช ืื ืืืช Python ืขื ืืคืฉืจืืช "--enable-optimizations", ืืฆื "-fno-semantic-interposition" ืืืคืขื ืืขืช, ืืืืคืฉืจ ืืืืืฅ ืืช ืืืชืืจืืื ืขื 30% ืืืฉืืืื ืืื ืืื ืขื "--enable-shared " ืืคืฉืจืืช.
- ืืืืืื ื-hashlib ื-ssl ืืืกืืคื ืชืืืื ื-OpenSSL 3.0.0 ืืืคืกืืงื ืืชืืื ืืืจืกืืืช OpenSSL ืืฉื ืืช ื-1.1.1.
- ืืื ืชื ืืืฉื ืืืกืจ, ืืฉืจ ืืืืืฃ ืืขื ืฃ ืืงืืื ืขื ืืื ืื ืชื PEG (Parsing Expression Grammar). ืืืืื ืืคืืจืื ืืืกืจ. ืคืจืืืจ ืืืืืื ืืืกืจ ืืืืืฉืง API ืฉื asyncio. ืฉืืืืช ืฉืืืฆืื ืืฉืืืืฉ ืืขืืจ ืืืกืจื. ืืคืื ืงืฆืืืช Py_UNICODE_str* ืืืืคืืืช ืืืืจืืืืช Py_UNICODE* ืืืกืจื.
- ืืืืื distutils ืืืฆื ืืฉืืืืฉ ืืืื ืืชืืื ื ืืืกืจื ื- Python 3.12. ืืืงืื distutils, ืืืืืฅ ืืืฉืชืืฉ ืืืื ืืืชืงื ื, ืืืจืืื, ืืคืืืคืืจืื, ื-shutil, subprocess ื-sysconfig. ืืื ื wstr ื- PyUnicodeObject ืืืฆื ืืฉืืืืฉ ืืชืืืื ืืืกืจื.
ืืงืืจ: OpenNet.ru