αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Python 3.10

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž˜αž½αž™αž†αŸ’αž“αžΆαŸ†αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸ αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŠαŸαžŸαŸ†αžαžΆαž“αŸ‹αž“αŸƒαž—αžΆαžŸαžΆαžŸαžšαžŸαŸαžšαž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Python 3.10 αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰αŸ” αžŸαžΆαžαžΆαžαŸ’αž˜αžΈαž“αŸαŸ‡αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž› XNUMX αž†αŸ’αž“αžΆαŸ†αž€αž“αŸ’αž›αŸ‡ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸ„αŸ‡αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž› XNUMX αž†αŸ’αž“αžΆαŸ†αž€αž“αŸ’αž›αŸ‡αž‘αŸ€αž αž€αžΆαžšαž‡αž½αžŸαž‡αž»αž›αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž€αžΎαžαž‘αžΎαž„αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžœαžΆαžŠαžΎαž˜αŸ’αž”αžΈαž›αž»αž”αž”αŸ†αž”αžΆαžαŸ‹αž—αžΆαž–αž„αžΆαž™αžšαž„αž‚αŸ’αžšαŸ„αŸ‡αŸ”

αž€αŸ’αž“αž»αž„αž–αŸαž›αž‡αžΆαž˜αž½αž™αž‚αŸ’αž“αžΆαž“αŸαŸ‡ αž€αžΆαžšαž’αŸ’αžœαžΎαžαŸαžŸαŸ’αžαž’αžΆαž›αŸ‹αž αŸ’αžœαžΆαž“αŸƒαžŸαžΆαžαžΆ Python 3.11 αž”αžΆαž“αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ (αžŸαŸ’αžšαž”αžαžΆαž˜αž€αžΆαž›αžœαž·αž—αžΆαž‚αž“αŸƒαž€αžΆαžšαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžαŸ’αž˜αžΈ αž€αžΆαžšαž„αžΆαžšαž“αŸ…αž›αžΎαžŸαžΆαžαžΆαžαŸ’αž˜αžΈαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜αž”αŸ’αžšαžΆαŸ†αžαŸ‚αž˜αž»αž“αž–αŸαž›αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžŸαžΆαžαžΆαž˜αž»αž“ αž“αž·αž„αžˆαžΆαž“αžŠαž›αŸ‹αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αžŸαžΆαž€αž›αŸ’αž”αž„αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆαž“αŸ…αž–αŸαž›αž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž”αž“αŸ’αž‘αžΆαž”αŸ‹αŸ” ) សអខអ Python 3.11 αž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αž’αžΆαž›αŸ‹αž αŸ’αžœαžΆαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž›αž”αŸ’αžšαžΆαŸ†αž–αžΈαžšαžαŸ‚ αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸ„αŸ‡αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜ αž“αž·αž„αž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡ αž€αŸ†αžŽαŸ‚αž”αŸ‚αžαžΆαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαžΆαž€αž›αŸ’αž”αž„αžšαž™αŸˆαž–αŸαž› XNUMX αžαŸ‚ αž€αŸ’αž“αž»αž„αž’αŸ†αž‘αž»αž„αž–αŸαž›αž“αŸ„αŸ‡αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž αžΆαž˜αžƒαžΆαžαŸ‹ αž αžΎαž™αž€αžΆαžšαž™αž€αž…αž·αžαŸ’αžαž‘αž»αž€αžŠαžΆαž€αŸ‹αž‘αžΆαŸ†αž„αž’αžŸαŸ‹αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ‹αžŠαžΎαž˜αŸ’αž”αžΈαž‡αž½αžŸαž‡αž»αž›αž€αŸ†αž αž»αžŸαŸ” αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αžšαž™αŸˆαž–αŸαž›αž–αžΈαžšαžαŸ‚αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž˜αž»αž“αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŸαžΆαžαžΆαž“αžΉαž„αžŸαŸ’αžαž·αžαž“αŸ…αžŠαŸ†αžŽαžΆαž€αŸ‹αž€αžΆαž›αž”αŸαž€αŸ’αžαž‡αž“αž…αŸαž‰αž•αŸ’αžŸαžΆαž™ αžŠαŸ‚αž›αž€αžΆαžšαžšαž€αŸ’αžŸαžΆαž›αŸ†αž“αžΉαž„αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αžΉαž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαŸ”

αž€αžΆαžšαž”αž“αŸ’αžαŸ‚αž˜αžαŸ’αž˜αžΈαž‘αŸ… Python 3.10 αžšαž½αž˜αž˜αžΆαž“:

  • αž”αžΆαž“αž’αž“αž»αžœαžαŸ’αžαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„" αž“αž·αž„ "αž€αžšαžŽαžΈ" αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αž›αŸ†αž“αžΆαŸ† αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž’αŸ„αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαž’αžΆαž“αž€αžΌαžŠ αž’αŸ’αžœαžΎαž±αŸ’αž™αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αžœαžαŸ’αžαž» Python αž˜αžΆαž“αž›αž€αŸ’αžαžŽαŸˆαžŸαžΆαž˜αž‰αŸ’αž‰ αž“αž·αž„αž”αž„αŸ’αž€αžΎαž“αž—αžΆαž–αž‡αžΏαž‡αžΆαž€αŸ‹αž“αŸƒαž€αžΌαžŠαžαžΆαž˜αžšαž™αŸˆαž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž‹αž·αžαž·αžœαž“αŸ’αžαž€αž˜αŸ’αžšαž·αžαžαŸ’αž–αžŸαŸ‹αŸ” αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž‚αžΊαžŠαžΌαž…αž‡αžΆαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "αž€αžΆαžšαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„" αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž“αŸ…αž€αŸ’αž“αž»αž„ Scala, Rust αž“αž·αž„ F# αžŠαŸ‚αž›αž”αŸ’αžšαŸ€αž”αž’αŸ€αž”αž›αž‘αŸ’αž’αž•αž›αž“αŸƒαž€αž“αŸ’αžŸαŸ„αž˜αžŠαŸ‚αž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž”αž‰αŸ’αž‡αžΈαž‚αŸ†αžšαžΌαžŠαŸ‚αž›αž”αžΆαž“αžšαžΆαž™αž€αŸ’αž“αž»αž„αž”αŸ’αž›αž»αž€αžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš "αž€αžšαžŽαžΈ" αŸ”

    def http_error(αžŸαŸ’αžαžΆαž“αž—αžΆαž–)αŸ– αžŸαŸ’αžαžΆαž“αž—αžΆαž–αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ– αž€αžšαžŽαžΈ αŸ€αŸ αŸ αŸ– αžαŸ’αžšαž‘αž”αŸ‹ β€œαžŸαŸ†αžŽαžΎαž˜αž·αž“αž›αŸ’αž’β€ αž€αžšαžŽαžΈ ៀ០៑|ៀ០៣|αŸ€αŸ αŸ€αŸ– αžαŸ’αžšαž‘αž”αŸ‹ β€œαž˜αž·αž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€ αž€αžšαžŽαžΈ αŸ€αŸ‘αŸ¨αŸ– αžαŸ’αžšαž‘αž”αŸ‹αž€αžšαžŽαžΈ β€œαžαŸ’αž‰αž»αŸ†αž‡αžΆαž‘αžΉαž€αžαŸ‚β€ αž€αžšαžŽαžΈ _αŸ– αžαŸ’αžšαž‘αž”αŸ‹ β€œαž’αŸ’αžœαžΈαŸ—αž•αŸ’αžŸαŸαž„αž‘αŸ€αžβ€

    αž’αŸ’αž“αž€β€‹αž’αžΆαž…β€‹αžŸαŸ’αžšαžΆαž™β€‹αžœαžαŸ’αžαž» αžŠαž»αŸ†β€‹αžšαžΆαž™ αž”αž‰αŸ’αž‡αžΈ αž“αž·αž„β€‹αž›αŸ†αžŠαžΆαž”αŸ‹β€‹αžαžΆαž˜β€‹αž’αŸ†αž–αžΎβ€‹αž…αž·αžαŸ’αž αžŠαžΎαž˜αŸ’αž”αžΈβ€‹αž…αž„β€‹αž’αžαŸαžšβ€‹αžŠαŸ„αž™β€‹αž•αŸ’αž’αŸ‚αž€β€‹αž›αžΎβ€‹αžαž˜αŸ’αž›αŸƒβ€‹αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αžŸαŸ’αžšαžΆαž”αŸ‹αŸ” αžœαžΆβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž’αž“αž»αž‰αŸ’αž‰αžΆαžβ€‹αž€αŸ’αž“αž»αž„β€‹αž€αžΆαžšβ€‹αž€αŸ†αžŽαžαŸ‹β€‹αž‚αŸ†αžšαžΌβ€‹αžŠαŸ‚αž›β€‹αž”αžΆαž“β€‹αžŠαžΆαž€αŸ‹β€‹αž‚αŸ’αž“αžΆ αž”αŸ’αžšαžΎβ€‹αž›αž€αŸ’αžαžαžŽαŸ’αžŒ β€œif” αž”αž“αŸ’αžαŸ‚αž˜β€‹αž‘αŸ€αžβ€‹αž€αŸ’αž“αž»αž„β€‹αž–αž»αž˜αŸ’αž– αž”αŸ’αžšαžΎβ€‹αžšαž”αžΆαŸ†αž„ (β€œ[x, y, *rest]”) αž€αžΆαžšβ€‹αž‚αžΌαžŸβ€‹αž•αŸ‚αž“αž‘αžΈβ€‹αž‚αž“αŸ’αž›αžΉαŸ‡/αžαž˜αŸ’αž›αŸƒ (αž§αž‘αžΆαž αžšαžŽαŸ {β€œbandwidth”: b, β€œlatency ”:l} αžŠαžΎαž˜αŸ’αž”αžΈαžŸαŸ’αžšαž„αŸ‹αžαž˜αŸ’αž›αŸƒ "bandwidth" αž“αž·αž„ "latency" αž–αžΈαžœαž…αž“αžΆαž“αž»αž€αŸ’αžšαž˜) αžŸαŸ’αžšαž„αŸ‹αž…αŸαž‰αž‚αŸ†αžšαžΌαžšαž„ (":=" operator) αž”αŸ’αžšαžΎαž–αžΆαž€αŸ’αž™ constants αž“αŸ…αž€αŸ’αž“αž»αž„ templateαŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αžαŸ’αž“αžΆαž€αŸ‹ αžœαžΆαž’αžΆαž…αž”αŸ’αžŠαžΌαžšαž₯αžšαž·αž™αžΆαž”αžαž•αŸ’αž‚αžΌαž•αŸ’αž‚αž„αžαžΆαž˜αž”αŸ†αžŽαž„αžŠαŸ„αž™αž”αŸ’αžšαžΎαžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžαŸ’αžš β€œ__match__()β€αŸ”

    αž–αžΈ dataclasses αž“αžΆαŸ†αž…αžΌαž› dataclass @dataclass class Point: x: int y: int def whereis(point): match point: case Point(0, 0): print("αž”αŸ’αžšαž—αž–αžŠαžΎαž˜") case Point(0, y): print(f" Y={y}") case Point(x, 0): print(f"X={x}") case Point(): print("Somewhere else") case _: print("Not a point") match point: case Point(x, y) if x == y: print(f"Y=X at {x}") case Point(x, y): print(f"αž˜αž·αž“αž“αŸ…αž›αžΎαž’αž„αŸ’αž€αžαŸ‹αž‘αŸ’αžšαžΌαž„") αž€αŸ’αžšαž αž˜, αž”αŸƒαžαž„, αž–αžŽαŸŒαžαŸ€αžœ = 0, 1, 2 αž–αžŽαŸŒαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž‚αŸ’αž“αžΆαŸ– case RED: print(β€œI see red!”) case GREEN: print(β€œGrass is green”) case BLUE: print(β€œI'm feeling the blues :(β€œ)

  • αž₯αž‘αžΌαžœαž“αŸαŸ‡ αžœαžΆαž’αžΆαž…αž‘αŸ…αžšαž½αž…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαžΎαžœαž„αŸ‹αž€αŸ’αžšαž…αž€αž“αŸ…αž€αŸ’αž“αž»αž„αžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸαž‡αžΆαž˜αž½αž™ αžŠαžΎαž˜αŸ’αž”αžΈαž”αŸ†αž”αŸ‚αž€αž“αž·αž™αž˜αž“αŸαž™αž“αŸƒαž”αžŽαŸ’αžαž»αŸ†αž“αŸƒαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αžšαž·αž”αž‘αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαžαŸ‹αž‡αžΆαž…αŸ’αžšαžΎαž“αŸ” αžœαžΆαž€αŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž‘αž»αž€αžŸαž‰αŸ’αž‰αžΆαž€αŸ’αž”αŸ€αžŸαž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αŸ’αž“αž€αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž”αžšαž·αž”αž‘αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ’αžšαž»αž˜αŸ– αž‡αžΆαž˜αž½αž™ ( CtxManager1() as example1, CtxManager2() as example2, CtxManager3() as example3, ): ...
  • αž’αŸ’αžœαžΎαž±αŸ’αž™αž”αŸ’αžšαžŸαžΎαžšαž‘αžΎαž„αž“αžΌαžœαž€αžΆαžšαžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž‘αžΈαžαžΆαŸ†αž„αž€αžΌαžŠαž“αŸƒαž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αžŠαž„αŸ’αž€αŸ€αž”αžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž”αž·αž‘ αž“αž·αž„αžŸαž˜αŸ’αžšαž„αŸ‹αž‡αžΆαž’αž€αŸ’αžŸαžšαž’αž€αŸ’αžŸαžšαŸ” αž‡αžΆαž§αž‘αžΆαž αžšαžŽαŸ αž“αŸ…αž–αŸαž›αžŠαŸ‚αž›αž˜αžΆαž“αžŠαž„αŸ’αž€αŸ€αž”αžŠαŸ‚αž›αž˜αž·αž“αž”αž·αž‘αž‡αž·αž αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™αž€αžΆαžšαžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž€αŸ†αž αž»αžŸαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαžŸαžΆαž„αžŸαž„αŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜ αž‘αŸ’αžšαž“αž·αž…αž₯αž‘αžΌαžœαž“αŸαŸ‡αžšαŸ†αž›αŸαž…αž‘αŸ’αžšαž“αž·αž…αž”αžΎαž€ αž αžΎαž™αž”αž„αŸ’αž αžΆαž‰αžαžΆαž˜αž·αž“αž˜αžΆαž“αž”αŸ’αž›αž»αž€αž”αž·αž‘αž‘αŸαŸ” αž―αž€αžŸαžΆαžš "example.py", αž‡αž½αžšαž‘αžΈ 1 αžšαŸ†αž–αžΉαž„αž‘αž»αž€ = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' αž˜αž·αž“αžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž·αž‘

    αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαžΆαžšαž€αŸ†αž αž»αžŸαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž―αž€αž‘αŸαžŸαž”αž“αŸ’αžαŸ‚αž˜αŸ– αž”αžΆαžαŸ‹αž“αž·αž˜αž·αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆ ":" αž“αŸ…αž–αžΈαž˜αž»αžαž”αŸ’αž›αž»αž€ αž“αž·αž„αž€αŸ’αž“αž»αž„αžœαž…αž“αžΆαž“αž»αž€αŸ’αžšαž˜ αž˜αž·αž“αž”αŸ†αž”αŸ‚αž€ tuple αž‡αžΆαž˜αž½αž™αžœαž„αŸ‹αž€αŸ’αžšαž…αž€ αž”αžΆαžαŸ‹αžŸαž‰αŸ’αž‰αžΆαž€αŸ’αž”αŸ€αžŸαž€αŸ’αž“αž»αž„αž”αž‰αŸ’αž‡αžΈ αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž”αŸ’αž›αž»αž€ "αžŸαžΆαž€αž›αŸ’αž”αž„" αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“ "αž›αžΎαž€αž›αŸ‚αž„αžαŸ‚" αž“αž·αž„ "αž…αž»αž„αž€αŸ’αžšαŸ„αž™" αžŠαŸ„αž™αž”αŸ’αžšαžΎ "= " αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ "= =" αž“αŸ…αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αŸ’αžšαŸ€αž”αž’αŸ€αž” αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ *-expressions αž€αŸ’αž“αž»αž„ f-strings αŸ” αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αžœαžΆαž’αžΆαž“αžΆαžαžΆαž€αž“αŸ’αžŸαŸ„αž˜αžŠαŸ‚αž›αž˜αžΆαž“αž”αž‰αŸ’αž αžΆαž‘αžΆαŸ†αž„αž˜αžΌαž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αž›αž·αž… αž˜αž·αž“αž˜αŸ‚αž“αž‚αŸ’αžšαžΆαž“αŸ‹αžαŸ‚αž‡αžΆαž€αžΆαžšαž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž“αž·αž„αž–αŸαžαŸŒαž˜αžΆαž“αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ€αžαž’αŸ†αž–αžΈαž”αžšαž·αž”αž‘αž“αŸƒαž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„αž€αžΆαžšαž…αžΌαž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž˜αž·αž“αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž“αŸ„αŸ‡αž‘αŸαŸ” >>> def foo(): ... if lel: ... x = 2 File " ", αž”αž“αŸ’αž‘αžΆαžαŸ‹ 3 x = 2 ^ IndentationError: αžšαŸ†αž–αžΉαž„αžαžΆαž“αžΉαž„αž˜αžΆαž“αž”αŸ’αž›αž»αž€αž…αžΌαž›αž”αž“αŸ’αž‘αžΆαžαŸ‹αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαžŸαŸαž…αž€αŸ’αžαžΈαžαŸ’αž›αŸ‚αž„αž€αžΆαžšαžŽαŸ 'if' αž“αŸ…αž€αŸ’αž“αž»αž„αž‡αž½αžšαž‘αžΈ 2

    αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž”αžŽαŸ’αžαžΆαž›αž˜αž€αž–αžΈαž€αžΆαžšαžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αž€αŸ’αž“αž»αž„αžˆαŸ’αž˜αŸ„αŸ‡αž“αŸƒαž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ αž“αž·αž„αžˆαŸ’αž˜αŸ„αŸ‡αž’αžαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„αž˜αž»αžαž„αžΆαžš αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ†αžŠαŸ‚αž›αž˜αžΆαž“αžˆαŸ’αž˜αŸ„αŸ‡αžαŸ’αžšαžΉαž˜αžαŸ’αžšαžΌαžœαž‚αžΊαž‡αžΆαž›αž‘αŸ’αž’αž•αž›αŸ” >>>collections.namedtoplo Traceback (αž€αžΆαžšαž αŸ…αž…αž»αž„αž€αŸ’αžšαŸ„αž™αž”αŸ†αž•αž»αž)αŸ– αž―αž€αžŸαžΆαžš Β« ", αž‡αž½αžšαž‘αžΈ 1, αž€αŸ’αž“αž»αž„ αž€αŸ†αž αž»αžŸαž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαŸ– αž˜αŸ‰αžΌαžŒαž»αž› 'αž€αžΆαžšαž”αŸ’αžšαž˜αžΌαž›' αž˜αž·αž“αž˜αžΆαž“αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆ 'namedtoplo' αž‘αŸαŸ” αžαžΎβ€‹αž’αŸ’αž“αž€β€‹αž˜αžΆαž“β€‹αž“αŸαž™β€‹αžαžΆβ€‹: αž αŸ…β€‹αžαžΆβ€‹?

  • αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž§αž”αž€αžšαžŽαŸαž”αŸ†αž”αžΆαžαŸ‹αž€αŸ†αž αž»αžŸ αž“αž·αž„αž’αŸ’αž“αž€αž”αž„αŸ’αž€αžΎαžαž‘αž˜αŸ’αžšαž„αŸ‹ αž–αŸ’αžšαžΉαžαŸ’αžαž·αž€αžΆαžšαžŽαŸαžαžΆαž˜αžŠαžΆαž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αžαž›αŸ‹αž‡αžΌαž“αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αŸαžαž”αž“αŸ’αž‘αžΆαžαŸ‹αž–αž·αžαž”αŸ’αžšαžΆαž€αžŠαž“αŸƒαž€αžΌαžŠαžŠαŸ‚αž›αž”αžΆαž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αŸ”
  • αž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ sys.flags.warn_default_encoding αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž αžΆαž‰αž€αžΆαžšαž–αŸ’αžšαž˜αžΆαž“αž’αŸ†αž–αžΈαž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž’αžΆαž…αž€αžΎαžαž˜αžΆαž“αž‘αžΆαž€αŸ‹αž‘αž„αž“αžΉαž„ TextIOWrapper αž“αž·αž„ open() αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž―αž€αžŸαžΆαžšαžŠαŸ‚αž›αž”αžΆαž“αž’αŸŠαž·αž“αž€αžΌαžŠ UTF-8 αžŠαŸ„αž™αž˜αž·αž“αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž…αŸ’αž”αžΆαžŸαŸ‹αž›αžΆαžŸαŸ‹αž‡αž˜αŸ’αžšαžΎαžŸ 'encoding=Β»utf-8β€³' (αž€αžΆαžšαž”αŸ†αž”αŸ’αž›αŸ‚αž„ ASCII αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αŸ’αžšαžΎαžαžΆαž˜αž›αŸ†αž“αžΆαŸ†αžŠαžΎαž˜) . αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™αžαŸ’αž˜αžΈαž“αŸαŸ‡αž€αŸαž•αŸ’αžαž›αŸ‹αž“αžΌαžœαžŸαž˜αžαŸ’αžαž—αžΆαž–αž€αŸ’αž“αž»αž„αž€αžΆαžšαž”αž‰αŸ’αž‡αžΆαž€αŸ‹αžαž˜αŸ’αž›αŸƒ 'encoding="locale"' αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž€αžΆαžšαž’αŸŠαž·αž“αž€αžΌαžŠαžŠαŸ„αž™αž•αŸ’αž’αŸ‚αž€αž›αžΎαž˜αžΌαž›αžŠαŸ’αž‹αžΆαž“αž”αž…αŸ’αž…αž»αž”αŸ’αž”αž“αŸ’αž“αŸ”
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžšαžαŸ’αž˜αžΈαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž˜αŸ‰αžΌαžŒαž»αž›αžœαžΆαž™αž’αžαŸ’αžαž”αž‘ αžŠαŸ‚αž›αž•αŸ’αžαž›αŸ‹αž§αž”αž€αžšαžŽαŸαžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž”αž‰αŸ’αž‡αžΆαž€αŸ‹αž€αžΆαžšαž–αž“αŸ’αž™αž›αŸ‹αž”αŸ’αžšαž—αŸαž‘ αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž”αŸ’αžšαžΎαžœαžΆαž€αŸ’αž™αžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ β€œX | Y" αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ’αžšαžΎαžŸαžšαžΎαžŸαž”αŸ’αžšαž—αŸαž‘αžŽαžΆαž˜αž½αž™ (αž”αŸ’αžšαž—αŸαž‘ X αž¬αž”αŸ’αžšαž—αŸαž‘ Y)αŸ” def square (αž›αŸαžαŸ– int | float) -> int | αž’αžŽαŸ’αžαŸ‚αžαŸ– αž›αŸαžαžαŸ’αžšαž‘αž”αŸ‹ ** 2 αž‚αžΊαžŸαŸ’αž˜αžΎαž“αžΉαž„αžŸαŸ†αžŽαž„αŸ‹αžŠαŸ‚αž›αž”αžΆαž“αž‚αžΆαŸ†αž‘αŸ’αžšαž–αžΈαž˜αž»αž“αŸ– def square(αž›αŸαžαŸ– Union[int,float]) -> Union[int,float]αŸ– αž›αŸαžαžαŸ’αžšαž‘αž”αŸ‹ **2
  • αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžš Concatenate αž“αž·αž„αž’αžαŸαžš ParamSpec αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αž‘αŸ…αž˜αŸ‰αžΌαžŒαž»αž›αžœαžΆαž™αž’αž€αŸ’αžŸαžš αžŠαŸ‚αž›αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αž†αŸ’αž›αž„αž€αžΆαžαŸ‹αž–αŸαžαŸŒαž˜αžΆαž“αž”αž“αŸ’αžαŸ‚αž˜αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž”αŸ’αžšαž—αŸαž‘αž‹αž·αžαž·αžœαž“αŸ’αž αž“αŸ…αž–αŸαž›αž”αŸ’αžšαžΎ Callable αŸ” αž˜αŸ‰αžΌαžŒαž»αž›αžœαžΆαž™αž”αž‰αŸ’αž…αžΌαž›αž€αŸαž”αž“αŸ’αžαŸ‚αž˜αžαž˜αŸ’αž›αŸƒαž–αž·αžŸαŸαžŸ TypeGuard αž•αž„αžŠαŸ‚αžšαžŠαžΎαž˜αŸ’αž”αžΈαžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž˜αž»αžαž„αžΆαžšαž€αžΆαžšαž–αžΆαžšαž”αŸ’αžšαž—αŸαž‘ αž“αž·αž„ TypeAlias β€‹β€‹αžŠαžΎαž˜αŸ’αž”αžΈαž€αŸ†αžŽαžαŸ‹αž™αŸ‰αžΆαž„αž…αŸ’αž”αžΆαžŸαŸ‹αž“αžΌαžœαžˆαŸ’αž˜αŸ„αŸ‡αž€αŸ’αž›αŸ‚αž„αž€αŸ’αž›αžΆαž™αž”αŸ’αžšαž—αŸαž‘αŸ” StrCache: TypeAlias ​​= 'Cache[str]' # a typealias
  • αž˜αž»αžαž„αžΆαžš zip() αž’αž“αž»αžœαžαŸ’αžαž‘αž„αŸ‹αž‡αžΆαžαž· "αžαžΉαž„αžšαžΉαž„" αžŸαŸ’αžšαŸαž…αž…αž·αžαŸ’αž αžŠαŸ‚αž›αž“αŸ…αž–αŸαž›αž”αžΆαž“αž”αž‰αŸ’αž‡αžΆαž€αŸ‹ αž–αž·αž“αž·αžαŸ’αž™αž˜αžΎαž›αžαžΆαžαžΎαž’αžΆαž‚αž»αž™αž˜αŸ‰αž„αŸ‹αžŠαŸ‚αž›αž€αŸ†αž–αž»αž„αžαŸ’αžšαžΌαžœαž”αžΆαž“αž’αŸ’αžœαžΎαž˜αŸ’αžαž„αž‘αŸ€αžαž˜αžΆαž“αž”αŸ’αžšαžœαŸ‚αž„αžŠαžΌαž…αž‚αŸ’αž“αžΆαŸ” >>> 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() argument 2 αžœαŸ‚αž„αž‡αžΆαž„ argument 1
  • αž˜αž»αžαž„αžΆαžšαžαŸ’αž˜αžΈαžŠαŸ‚αž›αž—αŸ’αž‡αžΆαž”αŸ‹αž˜αž€αž‡αžΆαž˜αž½αž™ aiter() αž“αž·αž„ anext() αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŸαŸ’αž“αžΎαž‘αžΎαž„αž‡αžΆαž˜αž½αž™αž“αžΉαž„αž€αžΆαžšαž’αž“αž»αžœαžαŸ’αžαž“αŸƒ analogues αž’αžŸαž˜αž€αžΆαž›αž‘αŸ…αž“αžΉαž„αž˜αž»αžαž„αžΆαžš iter() αž“αž·αž„ next() αŸ”
  • αž€αžΆαžšαž„αžΆαžšαžšαž”αžŸαŸ‹ str(), bytes() αž“αž·αž„ bytearray() constructors αž“αŸ…αž–αŸαž›αž’αŸ’αžœαžΎαž€αžΆαžšαž‡αžΆαž˜αž½αž™αžœαžαŸ’αžαž»αžαžΌαž…αŸ—αžαŸ’αžšαžΌαžœαž”αžΆαž“αž–αž“αŸ’αž›αžΏαž“αžŠαŸ„αž™ 30-40% αŸ”
  • αž”αžΆαž“αž€αžΆαžαŸ‹αž”αž“αŸ’αžαž™αž…αŸ†αž“αž½αž“αž”αŸ’αžšαžαž·αž”αžαŸ’αžαž·αž€αžΆαžšαž“αžΆαŸ†αž…αžΌαž›αž“αŸ…αž€αŸ’αž“αž»αž„αž˜αŸ‰αžΌαžŒαž»αž› runpy αŸ” αž–αžΆαž€αŸ’αž™αž”αž‰αŸ’αž‡αžΆ "python3 -m module_name" αž₯αž‘αžΌαžœαž“αŸαŸ‡αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž‡αžΆαž˜αž’αŸ’αž™αž˜ 1.4 αžŠαž„αž›αžΏαž“αž‡αžΆαž„αž˜αž»αž“ αžŠαŸ„αž™αžŸαžΆαžšαž€αžΆαžšαžαž™αž…αž»αŸ‡αž“αŸƒαž˜αŸ‰αžΌαžŒαž»αž›αžŠαŸ‚αž›αž”αžΆαž“αž“αžΆαŸ†αž…αžΌαž›αž–αžΈ 69 αž‘αŸ… 51 αŸ”
  • αž€αžΆαžšαžŽαŸ‚αž“αžΆαŸ† LOAD_ATTR αž”αŸ’αžšαžΎαž™αž“αŸ’αžαž€αžΆαžšαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αžŸαž˜αŸ’αžšαžΆαž”αŸ‹ opcode αž“αžΈαž˜αž½αž™αŸ— αžŠαŸ‚αž›αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αž’αŸ’αžœαžΎαž‘αŸ…αž”αžΆαž“αžŠαžΎαž˜αŸ’αž”αžΈαž”αž„αŸ’αž€αžΎαž“αž›αŸ’αž”αžΏαž“αž€αžΆαžšαž„αžΆαžšαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž‚αž»αžŽαž›αž€αŸ’αžαžŽαŸˆαž’αž˜αŸ’αž˜αžαžΆαžšαž αžΌαžαžŠαž›αŸ‹ 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) parser αŸ” αž˜αŸ‰αžΌαžŒαž»αž›αž‘αž˜αŸ’αžšαž„αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αŸ” αž”αŸ‰αžΆαžšαŸ‰αžΆαž˜αŸ‰αŸ‚αžαŸ’αžšαžšαž„αŸ’αžœαž·αž›αž‡αž»αŸ†αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αž–αžΈ asyncio API αŸ” αžœαž·αž’αžΈαžŸαžΆαžŸαŸ’αžšαŸ’αžαžŠαŸ‚αž›αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’αž–αžΈαž˜αž»αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αŸ” αž˜αž»αžαž„αžΆαžš Py_UNICODE_str* αžŠαŸ‚αž›αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αžαŸ’αžŸαŸ‚αž’αž€αŸ’αžŸαžš Py_UNICODE* αžαŸ’αžšαžΌαžœαž”αžΆαž“αžŠαž€αž…αŸαž‰αŸ”
  • αž˜αŸ‰αžΌαžŒαž»αž› distutils αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’ αž αžΎαž™αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαž™αž€αž…αŸαž‰αž“αŸ…αž€αŸ’αž“αž»αž„ Python 3.12 αŸ” αž‡αŸ†αž“αž½αžŸαž±αŸ’αž™ distutils αžœαžΆαžαŸ’αžšαžΌαžœαž”αžΆαž“αžŽαŸ‚αž“αžΆαŸ†αž’αŸ„αž™αž”αŸ’αžšαžΎ setuptools, packaging, platform, shutil, subprocess αž“αž·αž„ sysconfig modulesαŸ” αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’ wstr αž“αŸ…αž€αŸ’αž“αž»αž„ PyUnicodeObject αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžŠαž·αžŸαŸαž’ αž“αž·αž„αž€αŸ†αžŽαžαŸ‹αž–αŸαž›αžŸαž˜αŸ’αžšαžΆαž”αŸ‹αž€αžΆαžšαžŠαž€αž…αŸαž‰αŸ”

αž”αŸ’αžšαž—αž–: opennet.ru

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹