เป€เบ›เบตเบ”เบ•เบปเบงเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบก Python 3.10

เบซเบผเบฑเบ‡เบˆเบฒเบเบ›เบตเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบ›เปˆเบญเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบก Python 3.10 เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบต. เบชเบฒเบ‚เบฒเปƒเบซเบกเปˆเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบซเบ™เบถเปˆเบ‡เบ›เบตเปเบฅเบฐเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบญเบตเบเบชเบฒเบกเบ›เบตเป€เบ„เบดเปˆเบ‡, เบเบฒเบ™เปเบเป‰เป„เบ‚เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบžเบทเปˆเบญเบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบญเปˆเบญเบ™เปเบญ.

เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš alpha เบ‚เบญเบ‡เบชเบฒเบ‚เบฒ Python 3.11 เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เบ•เบฒเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ, เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบชเบฒเบ‚เบฒเปƒเบซเบกเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบซเป‰เบฒเป€เบ”เบทเบญเบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบชเบฒเบ‚เบฒเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเบกเบฒเบฎเบญเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš alpha เปƒเบ™เป€เบงเบฅเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบญเบเบ•เปเปˆเป„เบ›. ). เบชเบฒเบ‚เบฒ Python 3.11 เบˆเบฐเบขเบนเปˆเปƒเบ™เบเบฒเบ™เบ›เปˆเบญเบ alpha เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเป€เบˆเบฑเบ”เป€เบ”เบทเบญเบ™, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบฑเป‰เบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปเบฅเบฐเปเบกเบ‡เป„เบกเป‰เบ•เปˆเบฒเบ‡เป†เบˆเบฐเบ–เบทเบเปเบเป‰เป„เบ‚. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบšเบ•เป‰เบฒเบˆเบฐเบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบชเบฒเบกเป€เบ”เบทเบญเบ™, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เปƒเบซเบกเปˆเบˆเบฐเบ–เบทเบเบซเป‰เบฒเบกเปเบฅเบฐเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบˆเปˆเบฒเบเปƒเบซเป‰เบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡. เบชเบญเบ‡เป€เบ”เบทเบญเบ™เบชเบธเบ”เบ—เป‰เบฒเบเบเปˆเบญเบ™เบเบฒเบ™เบ›เปˆเบญเบ, เบชเบฒเบ‚เบฒเบˆเบฐเบขเบนเปˆเปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบชเบฐเบ–เบฝเบ™เบฅเบฐเบžเบฒเบšเบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.

เบเบฒเบ™เป€เบžเบตเปˆเบกเปƒเบซเบกเปˆเปƒเบ™ Python 3.10 เบ›เบฐเบเบญเบšเบกเบต:

  • เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "match" เปเบฅเบฐ "case" เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบš, เป€เบŠเบดเปˆเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบญเปˆเบฒเบ™เบฅเบฐเบซเบฑเบ”, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ Python เบ—เบตเปˆเบกเบฑเบเบ‡เปˆเบฒเบ, เปเบฅเบฐเป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบ„เบปเบ‡เบ—เบตเปˆเบ‚เบฑเป‰เบ™เบชเบนเบ‡. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "match" เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปƒเบ™ Scala, Rust, เปเบฅเบฐ F#, เป€เบŠเบดเปˆเบ‡เบ›เบฝเบšเบ—เบฝเบšเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เบญเบ‡เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เบเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เบ•เบฑเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ "เบเปเบฅเบฐเบ™เบต".

    def http_error(เบชเบฐเบ–เบฒเบ™เบฐ): เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆ: เบเปเบฅเบฐเบ™เบต 400: เบชเบปเปˆเบ‡เบ„เบทเบ™ โ€œเบ„เบณเบ‚เปเบ—เบตเปˆเบšเปเปˆเบ”เบตโ€ เบเปเบฅเบฐเบ™เบต 401|403|404: เบเบฑเบšเบ„เบทเบ™ โ€œเบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”โ€ เบเปเบฅเบฐเบ™เบต 418: เบเบฑเบšเบ„เบทเบ™ โ€œเบ‚เป‰เบญเบเป€เบ›เบฑเบ™เปเปเป‰เบŠเบฒโ€ เบเปเบฅเบฐเบ™เบต _: เบเบฑเบšเบ„เบทเบ™ โ€œเบšเบฒเบ‡เบญเบฑเบ™โ€

    เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” unpack object, tuples, lists, เปเบฅเบฐ arbitrary sequences เป€เบžเบทเปˆเบญเบœเบนเบเบกเบฑเบ”เบ•เบปเบงเปเบ›เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ„เปˆเบฒเบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบเปเบฒเบ™เบปเบ”เปเบกเปˆเปเบšเบšเบ—เบตเปˆเบŠเป‰เบญเบ™เบเบฑเบ™, เปƒเบŠเป‰เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚ "เบ–เป‰เบฒ" เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เปเบกเปˆเปเบšเบš, เปƒเบŠเป‰เบซเบ™เป‰เบฒเบเบฒเบ (โ€œ[x, y, * rest]โ€), เปเบœเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ” / เบกเบนเบ™เบ„เปˆเบฒ (เบ•เบปเบงเบขเปˆเบฒเบ‡, {"เปเบšเบ™เบงเบดเบ”": b, "latency โ€:l} เป€เบžเบทเปˆเบญเบชเบฐเบเบฑเบ”เบ„เปˆเบฒ "bandwidth" เปเบฅเบฐ "latency" เบˆเบฒเบเบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก), extract subtemplates (":=" operator), เปƒเบŠเป‰เบ„เปˆเบฒเบ„เบปเบ‡เบ—เบตเปˆเบ—เบตเปˆเบกเบตเบŠเบทเปˆเปƒเบ™เปเบกเปˆเปเบšเบš. เปƒเบ™เบซเป‰เบญเบ‡เบฎเบฝเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเปเบ•เปˆเบ‡เบžเบถเบ”เบ•เบดเบเปเบฒเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบต โ€œ__match__()โ€.

    เบˆเบฒเบ dataclasses import 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("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"เบšเปเปˆเบขเบนเปˆเปƒเบ™เป€เบชเบฑเป‰เบ™เบ‚เบงเบฒเบ‡") RED, GREEN, เบชเบตเบŸเป‰เบฒ = 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, ): ...
  • เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบฅเบฒเบเบ‡เบฒเบ™เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบงเบปเบ‡เป€เบฅเบฑเบšเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ›เบดเบ”เปเบฅเบฐเบงเบปเบ‡เบขเบทเบกเปƒเบ™เบ•เบปเบงเบซเบ™เบฑเบ‡เบชเบทเบชเบฐเบ•เบฃเบดเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบกเบตเบงเบปเบ‡เป€เบฅเบฑเบšเบ—เบตเปˆเบšเปเปˆเบ›เบดเบ”, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡ syntax เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบ•เบปเบงเบŠเบตเป‰เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบงเบปเบ‡เป€เบฅเบฑเบšเป€เบ›เบตเบ”เปเบฅเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบ•เบปเบงเบ›เบดเบ”. เป„เบŸเบฅเปŒ "example.py", เปเบ–เบง 1 เบ„เบฒเบ” = {9:1, 18:2, 19:2, 27:3, 28:3, 29:3, 36:4, 37:4, ^SyntaxError: '{' เบšเปเปˆเป€เบ„เบตเบเบ›เบดเบ”

    เป€เบžเบตเปˆเบกเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡ syntax เบžเบดเป€เบชเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก: เบ‚เบฒเบ” ":" เบชเบฑเบ™เบเบฒเบฅเบฑเบเบเปˆเบญเบ™เบšเบฅเบฑเบญเบเปเบฅเบฐเปƒเบ™เบงเบฑเบ”เบˆเบฐเบ™เบฒเบ™เบธเบเบปเบก, เบšเปเปˆเป„เบ”เป‰เปเบเบ tuple เบเบฑเบšเบงเบปเบ‡เป€เบฅเบฑเบš, เบ‚เบฒเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เปƒเบ™เบฅเบฒเบเบเบฒเบ™, เบฅเบฐเบšเบธเบšเบฅเบฑเบญเบ "เบžเบฐเบเบฒเบเบฒเบก" เป‚เบ”เบเบšเปเปˆเบกเบต "เบเบปเบเป€เบงเบฑเป‰เบ™" เปเบฅเบฐ "เบชเบธเบ”เบ—เป‰เบฒเบ", เป‚เบ”เบเปƒเบŠเป‰ "= " เปเบ—เบ™ " = =" เปƒเบ™เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš, เบฅเบฐเบšเบธ *-expressions เปƒเบ™ f-strings. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ–เบทเบเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆ, เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบเบงเปˆเบฒเบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบžเบฒเบšเบเบฒเบ™เบ‚เบญเบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบซเบเปเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. >>> def foo(): ... เบ–เป‰เบฒ lel: ... x = 2 File " ", เปเบ–เบง 3 x = 2 ^ IndentationError: เบ„เบฒเบ”เบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™ indented block เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบ—เบตเปˆ 'if' เปƒเบ™เปเบ–เบง 2

    เปƒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบ typos เปƒเบ™เบŠเบทเปˆเบ‚เบญเบ‡เบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเปเบฅเบฐเบŠเบทเปˆเบ•เบปเบงเปเบ›เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบกเปˆเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”. >>>collections.namedtoplo Traceback (เป‚เบ—เบซเบผเป‰เบฒเบชเบธเบ”เบซเบผเป‰เบฒเบชเบธเบ”): เป„เบŸเบฅเปŒ ยซ ", เปเบ–เบง 1, เปƒเบ™ AttributeError: เป‚เบกเบ”เบนเบ™ 'collections' เบšเปเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐ 'namedtoplo'. เป€เบˆเบปเป‰เบฒเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ: nametuple?

  • เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ”เบตเบšเบฑเบ เปเบฅเบฐเบ•เบปเบงเบชเป‰เบฒเบ‡เป‚เบ›เบฃเป„เบŸเบฅเปŒ, เป€เบซเบ”เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เบ”เป‰เบงเบเบ•เบปเบงเป€เบฅเบเปเบ–เบงเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเป‰เบง.
  • เป€เบžเบตเปˆเบกเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ sys.flags.warn_default_encoding เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบเบฒเบ™เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบถเป‰เบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš TextIOWrapper เปเบฅเบฐ open() เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” UTF-8 เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบฅเบฐเบšเบธเบ•เบปเบงเป€เบฅเบทเบญเบ 'encoding=ยปutf-8โ€ณ' เบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡ (เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ” ASCII เบ–เบทเบเปƒเบŠเป‰เป€เบ›เบฑเบ™เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™) . เบฎเบธเปˆเบ™เปƒเบซเบกเปˆเบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบฅเบฐเบšเบธเบ„เปˆเบฒ 'encoding="locale"' เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™.
  • เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปƒเบซเบกเปˆเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบกเบ”เบนเบ™เบเบฒเบ™เบžเบดเบก, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฅเบฐเบšเบธเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ›เบฐเป€เบžเบ”, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ™เปเบฒเปƒเบŠเป‰ syntax โ€œX | Y" เป€เบžเบทเปˆเบญเป€เบฅเบทเบญเบเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ›เบฐเป€เบžเบ” (เบ›เบฐเป€เบžเบ” X เบซเบผเบทเบ›เบฐเป€เบžเบ” Y). def square(เบˆเปเบฒเบ™เบงเบ™: int | float) -> int | float: เป€เบฅเบเบเบฑเบšเบ„เบทเบ™ ** 2 เปเบกเปˆเบ™เป€เบ—เบปเปˆเบฒเบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰: def square(เบˆเปเบฒเบ™เบงเบ™: Union[int, float]) -> Union[int, float]: เบ•เบปเบงเป€เบฅเบเบเบฑเบšเบ„เบทเบ™ ** 2
  • เบ•เบปเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ Concatenate เปเบฅเบฐเบ•เบปเบงเปเบ› ParamSpec เป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบกเบ”เบนเบ™เบเบฒเบ™เบžเบดเบก, เป€เบŠเบดเปˆเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบœเปˆเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปƒเบŠเป‰ Callable. เป‚เบกเบ”เบนเบ™เบเบฒเบ™เบžเบดเบกเบเบฑเบ‡เป€เบžเบตเปˆเบกเบ„เปˆเบฒเบžเบดเป€เบชเบ” โ€‹TypeGuard โ€‹โ€‹เป€เบžเบทเปˆเบญ annotate เบซเบ™เป‰เบฒเบ—เบตเปˆเบ›เป‰เบญเบ‡เบเบฑเบ™เบ›เบฐเป€เบžเบ”เปเบฅเบฐ TypeAlias โ€‹โ€‹โ€‹โ€‹เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ” alias เบ›เบฐเป€เบžเบ”เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™. 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() เป„เบ”เป‰เบ–เบทเบเบชเบฐเป€เบซเบ™เบตเบ”เป‰เบงเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบš asynchronous เบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ iter() เปเบฅเบฐเบ•เปเปˆเป„เบ›().
  • เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ str(), bytes() เปเบฅเบฐ bytearray() constructors เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบงเบฑเบ”เบ–เบธเบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเป„เบ”เป‰เบ–เบทเบเป€เบฅเบฑเปˆเบ‡เป‚เบ”เบ 30-40%.
  • เบซเบผเบธเบ”เบˆเปเบฒเบ™เบงเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเปƒเบ™เป‚เบกเบ”เบนเบ™ runpy. เบ„เปเบฒเบชเบฑเปˆเบ‡ "python3 -m module_name" เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ 1.4 เป€เบ—เบปเปˆเบฒเป„เบงเบญเบฑเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเบเบฒเบ™เบซเบผเบธเบ”เบฅเบปเบ‡เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบˆเบฒเบ 69 เป€เบ›เบฑเบ™ 51.
  • เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ LOAD_ATTR เปƒเบŠเป‰เบเบปเบ™เป„เบเบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบš opcodes เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบฑเปˆเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ›เบปเบเบเบฐเบ•เบดเป„เบ”เป‰เป€เบ–เบดเบ‡ 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). เป‚เบกเบ”เบนเบ™เบฎเบนเบšเปเบšเบšเป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบ. เบžเบฒเบฃเบฒเบกเบดเป€เบ•เบต loop เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเบˆเบฒเบ asyncio API เปเบฅเป‰เบง. เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเป€เบ„เบตเบเบ–เบทเบเบเบปเบเป€เบฅเบตเบเป„เบ›เบเปˆเบญเบ™เปœเป‰เบฒเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป€เบญเบปเบฒเบญเบญเบเปเบฅเป‰เบง. เบŸเบฑเบ‡เบŠเบฑเบ™ Py_UNICODE_str* เบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบชเบฐเบ•เบฃเบดเบ‡ Py_UNICODE* เป„เบ”เป‰เบ–เบทเบเบฅเบถเบšเบญเบญเบเปเบฅเป‰เบง.
  • เป‚เบกเบ”เบนเบ™ distutils เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบเปเบฅเป‰เบง เปเบฅเบฐเบ–เบทเบเบเบณเบ™เบปเบ”เปƒเบซเป‰เป€เบญเบปเบฒเบญเบญเบเปƒเบ™ Python 3.12. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ distutils, เบกเบฑเบ™เปเบกเปˆเบ™เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เปƒเบŠเป‰ setuptools, เบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆ, เป€เบงเบ—เบต, shutil, subprocess เปเบฅเบฐ sysconfig modules. เป‚เบ„เบ‡เบชเป‰เบฒเบ‡ wstr เปƒเบ™ PyUnicodeObject เป„เบ”เป‰เบ–เบทเบเบเบปเบเป€เบฅเบตเบ เปเบฅเบฐเบเบณเบ™เบปเบ”เป€เบงเบฅเบฒเบเบฒเบ™เป€เบญเบปเบฒเบญเบญเบ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™