ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Python 3.11 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ืึท ื‘ืึทื˜ื™ื™ื˜ื™ืง ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ Python 3.11 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืื™ื– ืืจื•ื™ืก. ื“ืขืจ ื ืฒึทืขืจ ืฆื•ื•ื™ื™ึทื’ ื•ื•ืขื˜ ื’ืขืฉื˜ื™ืฆื˜ ื•ื•ืขืจืŸ ืคึฟืึทืจ ืึท ื™ืึธืจ ืื•ืŸ ืึท ื”ืึทืœื‘, ืื•ืŸ ื“ืขืจื ืึธืš ื•ื•ืขืœืŸ ื–ื™ืš ืคึฟืึธืจืžื™ืจืŸ ืคึฟืึทืจ ืื™ื ืคึผืึทื˜ื˜ืฉืขืก ืžื™ื˜ ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื– ืคึฟืึทืจ ื ืึธืš ื“ืจื™ื™ ืื•ืŸ ืึท ื”ืึทืœื‘ ื™ืึธืจ.

ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืึทืœืฃ ื˜ืขืกื˜ื™ื ื’ ืคื•ืŸ ื“ื™ Python 3.12 ืฆื•ื•ื™ื™ึทื’ ืื ื’ืขื”ื•ื™ื‘ืŸ (ืื™ืŸ ืœื•ื™ื˜ ืžื™ื˜ ื“ื™ ื ื™ื™ึทืข ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืคึผืœืึทืŸ, ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืึท ื ื™ื™ึทืข ืฆื•ื•ื™ื™ึทื’ ื”ื™ื™ื‘ื˜ ื–ื™ืš ืืŸ ืคื™ื ืฃ ื—ื“ืฉื™ื ืื™ื™ื“ืขืจ ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ ืคืจื™ืขืจื“ื™ืงืข ืฆื•ื•ื™ื™ึทื’ ืื•ืŸ ืจื™ื˜ืฉืึทื– ื“ื™ ืึทืœืฃ ื˜ืขืกื˜ื™ื ื’ ื‘ื™ื ืข ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ืคื•ืŸ ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืžืขืœื“ื•ื ื’. ). ื“ื™ Python 3.12 ืฆื•ื•ื™ื™ึทื’ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ืึทืœืฃ ืจื™ืœื™ืกื™ื– ืคึฟืึทืจ ื–ื™ื‘ืŸ ื—ื“ืฉื™ื, ื‘ืขืฉืึทืก ื•ื•ืึธืก ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืžื•ืกื™ืฃ ืื•ืŸ ื‘ืึทื’ื– ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคืึทืจืคืขืกื˜ื™ืงื˜. ื ืึธืš ื“ืขื, ื‘ื™ืชื ื•ื•ืขืจืกื™ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื˜ืขืกื˜ืขื“ ืคึฟืึทืจ ื“ืจื™ื™ ื—ื“ืฉื™ื, ื‘ืขืฉืึทืก ื•ื•ืึธืก ื“ื™ ืึทื“ื™ืฉืึทืŸ ืคื•ืŸ ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืคึผืจืึธื•ื›ื™ื‘ืึทื˜ืึทื“ ืื•ืŸ ืึทืœืข ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืึทืฆืึธืœื˜ ืฆื• ืคื™ืงืกื™ืจ ื‘ืึทื’ื–. ื“ื™ ืœืขืฆื˜ืข ืฆื•ื•ื™ื™ ืžืื ืื˜ืŸ ืคืืจืŸ ื‘ืืคืจื™ื™ืื•ื ื’ ื•ื•ืขื˜ ื“ืขืจ ืฆื•ื•ื™ื™ื’ ื–ื™ื™ืŸ ืื™ืŸ ื“ืขืจ ื‘ืืคืจื™ื™ืื•ื ื’ ืงืื ื“ื™ื“ืื˜, ื•ื•ืื• ื“ื™ ืขื ื“ื’ื™ืœื˜ื™ืงืข ืกื˜ืื‘ื™ืœื™ื–ืืฆื™ืข ื•ื•ืขื˜ ื“ื•ืจื›ื’ืขืคื™ืจื˜ ื•ื•ืขืจืŸ.

ื ื™ื™ึทืข ืึทื“ื™ืฉืึทื ื– ืื™ืŸ Python 3.11 ืึทืจื™ื™ึทื ื ืขืžืขืŸ:

  • ื‘ืึทื˜ื™ื™ื˜ื™ืง ืึทืจื‘ืขื˜ ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืฆื• ืึทืคึผื˜ืึทืžื™ื™ื– ืคืึธืจืฉื˜ืขืœื•ื ื’. ื“ื™ ื ื™ื™ึทืข ืฆื•ื•ื™ื™ึทื’ ื™ื ืงืœื•ื“ื– ืขื ื“ืขืจื•ื ื’ืขืŸ ืฉื™ื™ึทื›ื•ืช ืฆื• ื“ื™ ืึทืงืกืขืœืขืจื™ื™ืฉืึทืŸ ืื•ืŸ ื™ื ืœื™ื ืข-ื“ื™ืคึผืœื•ื™ืžืึทื ื˜ ืคื•ืŸ ืคื•ื ืงืฆื™ืข ืจื•ืคื˜, ื“ื™ ื ื•ืฆืŸ ืคื•ืŸ ืฉื ืขืœ ื™ื ื˜ืขืจืคึผืจืึทื˜ืขืจื– ืคื•ืŸ ื˜ื™ืคึผื™ืฉ ืึทืคึผืขืจื™ื™ืฉืึทื ื– (x+x, x*x, xx, a[i], a[i] = z, f( arg) C (ืึทืจื’), ืึธ.ืžืขื˜ืึธื“ (), ืึธ.ืึทื˜ื˜ืจ = ื–, *ืกืขืง), ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืึทืคึผื˜ืึทืžืึทื–ื™ื™ืฉืึทื ื– ืฆื•ื’ืขื’ืจื™ื™ื˜ ื“ื•ืจืš ื“ื™ ืกื™ื ื“ืขืจ ืื•ืŸ ื”ืึธื˜ืคึผื™ ืคึผืจืึทื“ื–ืฉืขืงืก. ื“ืขืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ืขื ื˜ื™ืคึผ ืคื•ืŸ ืžืึทืกืข, ืขืก ืื™ื– ืึท ืคืึทืจื’ืจืขืกืขืจืŸ ืื™ืŸ ื“ื™ ื’ื™ื›ืงื™ื™ึทื˜ ืคื•ืŸ ื“ื•ืจื›ืคื™ืจื•ื ื’ ืงืึธื“ ื“ื•ืจืš 10-60%. ืื™ืŸ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš, ื“ื™ ืคืึธืจืฉื˜ืขืœื•ื ื’ ื•ื•ืขืŸ ื“ื•ืจื›ื’ืขื’ืื ื’ืขืŸ ื“ื™ ืคึผืขืจืคืึธืจืžืึทื ืกืข ืคึผืจื•ื‘ื™ืจืŸ ืกื•ื•ื™ื˜ ืื™ื– ื’ืขื•ื•ืืงืกืŸ ืžื™ื˜ 25%.

    ื“ื™ ื‘ื™ื˜ืขืงืึธื“ืข ืงืึทื˜ืฉื™ื ื’ ืžืขืงืึทื ื™ื–ืึทื ืื™ื– ืจื™ื“ื™ื–ื™ื™ื ื“, ื•ื•ืึธืก ืจื™ื“ื•ืกื˜ ื“ื™ ืกื˜ืึทืจื˜ืึทืคึผ ืฆื™ื™ื˜ ืคื•ืŸ ื“ื™ ื™ื‘ืขืจื–ืขืฆืขืจ ืžื™ื˜ 10-15%. ืึธื‘ื“ื–ืฉืขืงืฅ ืžื™ื˜ ืงืึธื“ ืื•ืŸ ื‘ื™ื˜ืขืงืึธื“ืข ื–ืขื ืขืŸ ืื™ืฆื˜ ืกื˜ืึทื˜ื™ืงืœื™ ืึทืœืึทืงื™ื™ื˜ื™ื“ ื“ื•ืจืš ื“ื™ ื™ื‘ืขืจื–ืขืฆืขืจ, ื•ื•ืึธืก ื’ืขืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ืขืœื™ืžื™ื ื™ืจืŸ ื“ื™ ืกื˜ืึทื’ืขืก ืคื•ืŸ ื•ื ืžืึทืจืฉืึทืœื™ื ื’ ื“ื™ ื‘ื™ื™ื˜ืขืงืึธื“ ื™ืงืกื˜ืจืึทืงื˜ื™ื“ ืคื•ืŸ ื“ื™ ืงืึทืฉ ืื•ืŸ ืงืึทื ื•ื•ืขืจื˜ื™ื ื’ ืึทื‘ื“ื–ืฉืขืงืฅ ืžื™ื˜ ืงืึธื“ ืคึฟืึทืจ ืคึผืœื™ื™ืกืžืึทื ื˜ ืื™ืŸ ื“ื™ื ืึทืžื™ืฉ ื–ื›ึผืจื•ืŸ.

  • ื•ื•ืขืŸ ื•ื•ื™ื™ึทื–ื ื“ื™ืง ืจื•ืคืŸ ื˜ืจืึทืกืขืก ืื™ืŸ ื“ื™ืึทื’ื ืึธืกื˜ื™ืง ืึทืจื˜ื™ืงืœืขืŸ, ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ื•ื•ืขื’ืŸ ื“ืขื ืื•ื™ืกื“ืจื•ืง ื•ื•ืึธืก ื”ืึธื˜ ื’ืขืคึฟื™ืจื˜ ื“ืขื ื˜ืขื•ืช (ืคืจื™ืขืจ, ื‘ืœื•ื™ื– ื“ื™ ืฉื•ืจื” ืื™ื– ื›ื™ื™ืœื™ื™ื˜ื™ื“ ืึธืŸ ื“ื™ื˜ื™ื™ืœื™ื ื’ ื•ื•ืึธืก ื˜ื™ื™ืœ ืคื•ืŸ ื“ื™ ืฉื•ืจื” ื’ืขืคึฟื™ืจื˜ ื“ืขื ื˜ืขื•ืช). ืขืงืกื˜ืขื ื“ืขื“ ื˜ืจื™ื™ืกื™ื ื’ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืจื™ื˜ืจื™ื•ื•ื“ ื“ื•ืจืš ื“ื™ ืึทืคึผื™ ืื•ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ืฆื• ืžืึทืคึผืข ืื™ื ืกื˜ืจื•ืงืฆื™ืขืก ืคื•ืŸ ื™ื—ื™ื“ ื‘ื™ื˜ืขืงืึธื“ืข ืฆื• ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืฉื˜ืขืœืข ืื™ืŸ ื“ื™ ืžืงื•ืจ ืงืึธื“ ื ื™ืฆืŸ ื“ื™ codeobject.co_positions () ืื•ืคึฟืŸ ืึธื“ืขืจ ื“ื™ PyCode_Addr2Location () C API ืคื•ื ืงืฆื™ืข. ื“ืขืจ ืขื ื“ืขืจื•ื ื’ ื–ื™ื™ืขืจ ืกื™ืžืคึผืœืึทืคื™ื™ื– ื“ื™ื‘ืึทื’ื™ื ื’ ืคึผืจืึธื‘ืœืขืžืก ืคึฟืึทืจื‘ื•ื ื“ืŸ ืžื™ื˜ ื ืขืกื˜ืขื“ ื•ื•ืขืจื˜ืขืจื‘ื•ืš ืึทื‘ื“ื–ืฉืขืงืฅ, ืงื™ื™ืคืœ ืคึฟื•ื ืงืฆื™ืข ืงืึทืœืœืก ืื•ืŸ ืงืึธืžืคึผืœืขืงืก ืึทืจื™ื˜ืžืขื˜ื™ืง ืื•ื™ืกื“ืจื•ืงืŸ. ื˜ืจืึทืกืขื‘ืึทืงืง (ื“ื™ ืœืขืฆื˜ืข ืจื•ืคืŸ): ื˜ืขืงืข "calculation.py", ืฉื•ืจื” 54, ืื™ืŸ ืจืขื–ื•ืœื˜ืึทื˜ = (ืจืขื ื˜ื’ืขื  / ื™ / ื–) * (ืึท / ื‘ / C) ~~~~~~^~~ ื–ืขืจืึธื“ื™ื•ื•ื™ืกื™ืึธืŸ ื˜ืขื•ืช: ืึธืคึผื˜ื™ื™ืœ ื“ื•ืจืš ื ื•ืœ
  • ืึทื“ื“ืขื“ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื’ืจื•ืคึผืขืก ืคื•ืŸ ืื•ื™ืกื ืขืžืขืŸ, ื’ืขื‘ืŸ ื“ืขื ืคึผืจืึธื’ืจืึทื ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืื•ืŸ ืคึผืจืึธืฆืขืก ืขื˜ืœืขื›ืข ืคืึทืจืฉื™ื“ืขื ืข ืื•ื™ืกื ืขืžืขืŸ ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜. ื ื™ื• ื˜ื™ื™ืคึผืก ืคื•ืŸ ืื•ื™ืกื ืขืžืขืŸ ExceptionGroup ืื•ืŸ BaseExceptionGroup ื–ืขื ืขืŸ ืคืืจื’ืขืœื™ื™ื’ื˜ ืคึฟืึทืจ ื’ืจื•ืคึผื™ื ื’ ืขื˜ืœืขื›ืข ืื•ื™ืกื ืขืžืขืŸ ืื•ืŸ ื–ื™ื™ืขืจ ืฉืœืึธืก ื™ื ื•ื•ืึทืงื™ื™ืฉืึทืŸ, ืื•ืŸ ื“ืขืจ ืื•ื™ืกื“ืจื•ืง "ื—ื•ืฅ *" ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื‘ืึทื–ื•ื ื“ืขืจ ืื•ื™ืกื ืขืžืขืŸ ืคื•ืŸ ืึท ื’ืจื•ืคึผืข.
  • ื“ื™ add_note () ืื•ืคึฟืŸ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ BaseException ืงืœืึทืก, ื•ื•ืึธืก ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฆื•ื˜ืฉืขืคึผืขืŸ ืึท ื˜ืขืงืกื˜ ื˜ืึธืŸ ืฆื• ื“ื™ ื•ื™ืกื ืขื, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ืฆื• ืœื™ื™ื’ืŸ ืงืึธื ื˜ืขืงืกื˜ื•ืึทืœ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ื‘ื ื™ืžืฆื ืื™ืŸ ื“ืขืจ ืฆื™ื™ื˜ ื•ื•ืขืŸ ื“ื™ ื•ื™ืกื ืขื ืื™ื– ืืจืœื ื’ืขื•ื•ืืจืคืŸ.
  • ื ืกืคึผืขืฆื™ืขืœืข ื˜ื™ืคึผ ื–ื™ืš ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ืคืึธืจืฉื˜ืขืœืŸ ื“ืขื ืงืจืึทื ื˜ ืคึผืจื™ื•ื•ืึทื˜ ืงืœืึทืก. ื–ื™ืš ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื ื•ืฆื˜ ืฆื• ืึทื ืึทื˜ื™ื™ื˜ ืžืขื˜ื”ืึธื“ืก ื•ื•ืึธืก ืฆื•ืจื™ืงืงื•ืžืขืŸ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ ืคื•ืŸ ื–ื™ื™ืขืจ ืงืœืึทืก ืื•ื™ืฃ ืึท ืกื™ืžืคึผืœืขืจ ื•ื•ืขื’ ื•ื•ื™ ื ื™ืฆืŸ TypeVar. ืงืœืึทืก MyLock: ื“ืขืค __ืขื ื˜ืขืจ__ (ื–ื™ืš) -> ื–ื™ืš: self.lock () ืฆื•ืจื™ืงืงื•ืžืขืŸ ื–ื™ืš
  • ื ืกืคึผืขืฆื™ืขืœืข ืœื™ื˜ืขืจืึทืœืกื˜ืจื™ื ื’ ื˜ื™ืคึผ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืœื•ื™ื– ืึทืจื™ื™ึทื ื ืขืžืขืŸ ืฉื˜ืจื™ืงืœ ืœื™ื˜ืขืจืึทืœื– ื•ื•ืึธืก ื–ืขื ืขืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ืึทืœ ืžื™ื˜ ื“ื™ ืœื™ื˜ืขืจืึทืœืกื˜ืจื™ื ื’ ื˜ื™ืคึผ (ื“"ื” ื ืึทืงืขื˜ ืกื˜ืจื™ื ื’ืก ืื•ืŸ ืกื˜ืจื™ื ื’ืก ืคื•ืŸ ื“ื™ ืœื™ื˜ืขืจืึทืœืกื˜ืจื™ื ื’ ื˜ื™ืคึผ, ืึธื‘ืขืจ ื ื™ืฉื˜ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืึธื“ืขืจ ืงืึทืžื‘ื™ื™ื ื“ ืกื˜ืจื™ื ื’ืก ืคื•ืŸ ื“ื™ ืกื˜ ื˜ื™ืคึผ). ื“ื™ ืœื™ื˜ืขืจืึทืœืกื˜ืจื™ื ื’ ื˜ื™ืคึผ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื ื•ืฆื˜ ืฆื• ื‘ืึทื’ืจืขื ืขืฆืŸ ื“ื™ ื“ื•ืจื›ืคืึธืจ ืคื•ืŸ ืฉื˜ืจื™ืงืœ ืึทืจื’ื•ืžืขื ื˜ืŸ ืฆื• ืคืึทื ื’ืงืฉืึทื ื–, ื“ื™ ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ืกืึทื‘ืกื˜ื™ื˜ื•ืฉืึทืŸ ืคื•ืŸ ืคึผืึทืจืฅ ืคื•ืŸ ืกื˜ืจื™ื ื’ืก ืื™ืŸ ื•ื•ืึธืก ืงืขื ืขืŸ ืคื™ืจืŸ ืฆื• ื•ื•ืึทืœื ืขืจืึทื‘ื™ืœื™ื˜ื™ื–, ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขืŸ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืกื˜ืจื™ื ื’ืก ืคึฟืึทืจ SQL ืงื•ื•ื™ืจื™ื– ืึธื“ืขืจ ืฉืึธืœ ืงืึทืžืึทื ื“ื–. def run_query (sql: LiteralString) -> ... ... ื“ืขืฃ ืงืึทืœืœืขืจ( ืึทืจื‘ื™ื˜ืจืขืจื™_ืกื˜ืจื™ื ื’: str, query_string: LiteralString, ื˜ื™ืฉ_ื ืึทืžืข: LiteralString, ) -> ืงื™ื™ืŸ: run_query ("SELECT * FROM ืกื˜ื•ื“ืขื ื˜ืŸ") # 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, ืงืึทื•ื•ืขืจื™ื ื’ ื ื™ื˜ ืื™ื™ืŸ ื˜ื™ืคึผ, ืึธื‘ืขืจ ืึท ืึทืจื‘ื™ื˜ืจืึทืจื™ืฉ ื ื•ืžืขืจ ืคื•ืŸ ื˜ื™ื™ืคึผืก.
  • ื“ืขืจ ื ืึธืจืžืึทืœ ื‘ื™ื‘ืœื™ืึธื˜ืขืง ื›ื•ืœืœ ื“ื™ ื˜ืึธืžืœื™ื‘ ืžืึธื“ื•ืœืข ืžื™ื˜ ืคืึทื ื’ืงืฉืึทื ื– ืคึฟืึทืจ ืคึผืึทืจืกื™ื ื’ ื“ื™ TOML ืคึฟืึธืจืžืึทื˜.
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื™ื™ื›ืŸ ื™ื—ื™ื“ ืขืœืขืžืขื ื˜ืŸ ืคื•ืŸ ื˜ื™ื™ืคึผื˜ ื“ื™ืงืฉืึทื ืขืจื™ื– (TypedDict) ืžื™ื˜ ื“ื™ Required ืื•ืŸ NotRequired ืžืึทืจืงืก ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜ ืฆื• ื‘ืึทืฉืœื™ืกืŸ ืคืืจืœืื ื’ื˜ ืื•ืŸ ืึทืคึผืฉืึทื ืึทืœ ืคืขืœื“ืขืจ (ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ืึทืœืข ื“ืขืจืงืœืขืจื˜ ืคืขืœื“ืขืจ ื–ืขื ืขืŸ ืคืืจืœืื ื’ื˜ ืื•ื™ื‘ ื“ื™ ื’ืึทื ืฅ ืคึผืึทืจืึทืžืขื˜ืขืจ ืื™ื– ื ื™ืฉื˜ ื‘ืึทืฉื˜ื™ืžื˜ ืฆื• ืคืึทืœืฉ). class Movie(TypedDict): title: str year: NotRequired[int] m1: Movie = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # ื’ื•ื˜ (ื“ื™ ื™ืึธืจ ืคืขืœื“ ืื™ื– ืึทืคึผืฉืึทื ืึทืœ) m3: ืคึฟื™ืœื = {"ื™ืึธืจ": 2022} # ื˜ืขื•ืช, ื“ื™ ืคืืจืœืื ื’ื˜ ื˜ื™ื˜ืœ ืคืขืœื“ ืื™ื– ื ื™ืฉื˜ ืึธื ื’ืขืคื™ืœื˜)
  • ื“ื™ ื˜ืึทืกืงื’ืจืึธื•ืคึผ ืงืœืึทืก ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ ืึทืกื™ื ืกื™ืึธ ืžืึธื“ื•ืœืข ืžื™ื˜ ื“ื™ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ืึท ื™ื™ืกื™ื ื’ืงืจืึทื ืึทืก ืงืึธื ื˜ืขืงืกื˜ ืคืึทืจื•ื•ืึทืœื˜ืขืจ ื•ื•ืึธืก ื•ื•ืึทืจื˜ืŸ ืคึฟืึทืจ ื“ื™ ืึทืจื‘ืขื˜ ื’ืจื•ืคึผืข ืฆื• ืคืึทืจืขื ื“ื™ืงืŸ. ืึทื“ื™ื ื’ ื˜ืึทืกืงืก ืฆื• ืึท ื’ืจื•ืคึผืข ืื™ื– ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืžื™ื˜ ื“ื™ create_task () ืื•ืคึฟืŸ. async def main(): ืึทืกื™ื ืง ืžื™ื˜ asyncio.TaskGroup() ื•ื•ื™ tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(anther_coro(...)) print("ื‘ื™ื™ื“ืข ื˜ืึทืกืงืก ื”ืึธื‘ืŸ ื’ืขืขื ื“ื™ืงื˜ ืื™ืฆื˜.")
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืงืœืึทืก, ืื•ืคึฟืŸ ืื•ืŸ ืคื•ื ืงืฆื™ืข ื“ืขืงืขืจื™ื™ื˜ืขืจ @dataclass_transform, ื•ื•ืขืŸ ืกืคึผืขืกื™ืคื™ืขื“, ื“ื™ ืกื˜ืึทื˜ื™ืง ื˜ื™ืคึผ ื˜ืฉืขืงืขืจ ื‘ืื”ืื ื“ืœื˜ ื“ื™ ื›ื™ื™ืคืขืฅ ื•ื•ื™ ืื•ื™ื‘ ื ื™ืฆืŸ ื“ื™ @dataclasses.dataclass ื“ืขืงืขืจื™ื™ื˜ืขืจ. ืื™ืŸ ื“ืขื ื‘ื™ื™ึทืฉืคึผื™ืœ ืื•ื ื˜ืŸ, ื“ื™ CustomerModel ืงืœืึทืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื˜ื™ืคึผ-ืึธืคึผื’ืขืฉื˜ืขืœื˜ ื•ื•ื™ ืึท ืงืœืึทืก ืžื™ื˜ ื“ื™ @dataclasses.dataclass ื“ืขืงืขืจื™ื™ื˜ืขืจ, ื“"ื”. ื•ื•ื™ ืึท __init__ ืื•ืคึฟืŸ ืึทื– ืึทืœืึทื•ื– ืฉื™ื™ึทืŸ ืื•ืŸ ื ืึธืžืขืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื–. @dataclass_transform() ืงืœืึทืก ืžืึธื“ืขืœื‘ืึทืกืข: โ€ฆ ืงืœืึทืก CustomerModel(ModelBase): ืฉื™ื™ึทืŸ: int ื ืึธืžืขืŸ: str
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ืึทื˜ืึธืžื™ืฉืข ื’ืจื•ืคึผื™ื ื’ ((?>...)) ืื•ืŸ ื™ื™ืคืขืจื˜ื–ื™ื›ื˜ื™ืง (ืคืึทืจื–ื™ื›ืขืจื˜) ืงื•ื•ืึทื ื˜ื™ืคื™ืขืจืก (*+, ++, ?+, {m,n}+) ืื™ืŸ ืจืขื’ื•ืœืขืจ ืื•ื™ืกื“ืจื•ืงืŸ.
  • ืฆื•ื’ืขื’ืขื‘ืŸ "-P" ื‘ืึทืคึฟืขืœืŸ ืฉื•ืจื” ืึธืคึผืฆื™ืข ืื•ืŸ PYTHONSAFEPATH ืกื•ื•ื™ื•ื•ืข ื‘ื™ื™ึทื˜ืขื•ื•ื“ื™ืง ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ืึธื˜ืึทืžืึทื˜ื™ืง ืึทื˜ืึทื˜ืฉืžืึทื ื˜ ืคื•ืŸ ืคึผืึทื˜ืขื ื˜ืฉืึทืœื™ ืึทื ืกื™ื™ืฃ ื˜ืขืงืข ืคึผืึทื˜ืก ืฆื• sys.path.
  • ื‘ืื˜ื™ื™ื˜ื™ืง ื™ืžืคึผืจื•ื•ื•ื“ ื“ื™ py.exe ื ื•ืฆืŸ ืคึฟืึทืจ ื“ื™ Windows ืคึผืœืึทื˜ืคืึธืจืžืข, ื•ื•ืึธืก ืื™ืฆื˜ ืฉื˜ื™ืฆื˜ ื“ื™ "-V:" ืกื™ื ื˜ืึทืงืก. / "ืื™ืŸ ื“ืขืจืฆื• ืฆื• "- . ".
  • ืคื™ืœืข ืžืึทืงืจืึธืก ืื™ืŸ ื“ื™ C API ื–ืขื ืขืŸ ืงืึธื ื•ื•ืขืจื˜ืขื“ ืฆื• ื ืึธืจืžืึทืœ ืึธื“ืขืจ ืกื˜ืึทื˜ื™ืง ื™ื ืœื™ื ืข ืคืึทื ื’ืงืฉืึทื ื–.
  • ื“ื™ uu, cgi, ืคึผื™ื™ืคึผืก, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev ืื•ืŸ sunau ืžืึทื“ื–ืฉื•ืœื– ื–ืขื ืขืŸ ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“ ืื•ืŸ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ ืื™ืŸ ื“ื™ ืคึผื™ื˜ื”ืึธืŸ 3.13 ืžืขืœื“ื•ื ื’. ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ PyUnicode_Encode * ืคืึทื ื’ืงืฉืึทื ื–.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’