เดชเตˆเดคเตเดคเตบ 3.11 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเตเดŸเต† เดชเตเดฐเด•เดพเดถเดจเด‚

เด’เดฐเต เดตเตผเดทเดคเตเดคเต† เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดจเต เดถเต‡เดทเด‚, เดชเตˆเดคเตเดคเตบ 3.11 เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเดฏเตเดŸเต† เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดพเดฏ เดฑเดฟเดฒเต€เดธเต เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดšเต. เดชเตเดคเดฟเดฏ เดฌเตเดฐเดพเดžเตเดšเต เด’เดจเตเดจเดฐ เดตเตผเดทเดคเตเดคเต‡เด•เตเด•เต เดชเดฟเดจเตเดคเตเดฃเดฏเตโ€Œเด•เตเด•เตเด‚, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดฎเดฑเตเดฑเตŠเดฐเต เดฎเต‚เดจเตเดจเดฐ เดตเตผเดทเดคเตเดคเต‡เด•เตเด•เต, เด•เต‡เดŸเตเดชเดพเดŸเตเด•เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.

เด…เดคเต‡ เดธเดฎเดฏเด‚, เดชเตˆเดคเตเดคเตบ 3.12 เดฌเตเดฐเดพเดžเตเดšเดฟเดจเตเดฑเต† เด†เตฝเดซ เดชเดฐเดฟเดถเต‹เดงเดจ เด†เดฐเด‚เดญเดฟเดšเตเดšเต (เดชเตเดคเดฟเดฏ เดกเต†เดตเดฒเดชเตโ€Œเดฎเต†เดจเตเดฑเต เดทเต†เดกเตเดฏเต‚เดณเดฟเดจเต เด…เดจเตเดธเตƒเดคเดฎเดพเดฏเดฟ, เด’เดฐเต เดชเตเดคเดฟเดฏ เดฌเตเดฐเดพเดžเตเดšเดฟเดจเตเดฑเต† เดœเต‹เดฒเดฟ เดฎเตเดฎเตเดชเดคเตเดคเต† เดฌเตเดฐเดพเดžเตเดšเต เดฑเดฟเดฒเต€เดธเดฟเดจเต เด…เดžเตเดšเต เดฎเดพเดธเด‚ เดฎเตเดฎเตเดชเต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเด‚ เด…เดŸเตเดคเตเดค เดฑเดฟเดฒเต€เดธเดฟเดจเตเดฑเต† เดธเดฎเดฏเดคเตเดคเต เด†เตฝเดซ เดŸเต†เดธเตเดฑเตเดฑเดฟเด‚เด—เต เด˜เดŸเตเดŸเดคเตเดคเดฟเดฒเต†เดคเตเดคเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. ). เดชเตˆเดคเตเดคเตบ 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% เดตเตผเดฆเตเดงเดฟเดšเตเดšเต.

    เดฌเตˆเดฑเตเดฑเตโ€Œเด•เต‹เดกเต เด•เดพเดทเดฟเด‚เด—เต เดธเด‚เดตเดฟเดงเดพเดจเด‚ เดชเตเดจเตผเดฐเต‚เดชเด•เตฝเดชเตเดชเดจ เดšเต†เดฏเตโ€Œเดคเต, เด‡เดคเต เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เดธเตเดฑเตเดฑเดพเตผเดŸเตเดŸเดชเตเดชเต เดธเดฎเดฏเด‚ 10-15% เด•เตเดฑเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด•เต‹เดกเตเด‚ เดฌเตˆเดฑเตเดฑเตโ€Œเด•เต‹เดกเตเดฎเตเดณเตเดณ เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เตพ เด‡เดชเตเดชเต‹เตพ เด‡เดจเตเดฑเตผเดชเตเดฐเต†เดฑเตเดฑเตผ เดธเตเดฅเดฟเดฐเดฎเดพเดฏเดฟ เด…เดจเตเดตเดฆเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เด•เดพเดทเต†เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเตเดšเต†เดฏเตโ€Œเดค เดฌเตˆเดฑเตเดฑเตโ€Œเด•เต‹เดกเต เด…เตบเดฎเดพเตผเดทเตฝ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฑเต† เด˜เดŸเตเดŸเด™เตเด™เตพ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดพเดจเตเด‚ เดกเตˆเดจเดพเดฎเดฟเด•เต เดฎเต†เดฎเตเดฎเดฑเดฟเดฏเดฟเตฝ เดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเตเด•เดณเต† เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด‡เดคเต เดธเดพเดงเตเดฏเดฎเดพเด•เตเด•เดฟ.

  • เดกเดฏเด—เตเดจเต‹เดธเตเดฑเตเดฑเดฟเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เดณเดฟเตฝ เด•เต‹เตพ เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเด•เตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏ เดชเดฆเดชเตเดฐเดฏเต‹เด—เดคเตเดคเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดตเดฟเดตเดฐเด™เตเด™เตพ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดธเดพเดงเตเดฏเดฎเดพเดฃเต (เดฎเตเดฎเตเดชเต, เดฒเตˆเดจเดฟเดจเตเดฑเต† เดเดคเต เดญเดพเด—เดฎเดพเดฃเต เดชเดฟเดถเด•เดฟเดจเต เด•เดพเดฐเดฃเดฎเดพเดฏเดคเต†เดจเตเดจเต เดตเดฟเดถเดฆเต€เด•เดฐเดฟเด•เตเด•เดพเดคเต† เดฒเตˆเตป เดฎเดพเดคเตเดฐเด‚ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตโ€Œเดคเดฟเดฐเตเดจเตเดจเต). เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเดšเตเดš เดŸเตเดฐเต†เดฏเตโ€Œเดธเต เดตเดฟเดตเดฐเด™เตเด™เตพ API เดตเดดเดฟเดฏเตเด‚ เดฒเดญเดฟเด•เตเด•เตเด‚ เด•เต‚เดŸเดพเดคเต† codeobject.co_positions() เดฐเต€เดคเดฟ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ C API เดซเด‚เด—เตโ€Œเดทเตป PyCode_Addr2Location() เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเต‹เดดเตโ€Œเดธเต เด•เต‹เดกเดฟเดฒเต† เด’เดฐเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ เดธเตเดฅเดพเดจเดคเตเดคเต‡เด•เตเด•เต เดตเตเดฏเด•เตเดคเดฟเด—เดค เดฌเตˆเดฑเตเดฑเตเด•เต‹เดกเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เตพ เดฎเดพเดชเตเดชเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเด‚ เด•เดดเดฟเดฏเตเด‚. เดจเต†เดธเตเดฑเตเดฑเดกเต เดกเดฟเด•เตเดทเดฃเดฑเดฟ เด’เดฌเตโ€Œเดœเด•เตโ€Œเดฑเตเดฑเตเด•เตพ, เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดซเด‚เด—เตโ€Œเดทเตป เด•เต‹เดณเตเด•เตพ, เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด—เดฃเดฟเดค เดชเดฆเดชเตเดฐเดฏเต‹เด—เด™เตเด™เตพ เดŽเดจเตเดจเดฟเดตเดฏเดฟเดฒเต† เดชเตเดฐเดถเตโ€Œเดจเด™เตเด™เตพ เดกเต€เดฌเด—เต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต เดˆ เดฎเดพเดฑเตเดฑเด‚ เดตเดณเดฐเต† เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเต. เดŸเตเดฐเต†เดฏเตโ€Œเดธเตเดฌเดพเด•เตเด•เต (เดเดฑเตเดฑเดตเตเด‚ เดธเดฎเต€เดชเด•เดพเดฒ เด•เต‹เตพ): "calculation.py" เดซเดฏเตฝ, เดฒเตˆเตป 54, เดซเดฒเดคเตเดคเดฟเตฝ = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: เดชเต‚เดœเตเดฏเด‚ เด•เตŠเดฃเตเดŸเต เดนเดฐเดฟเด•เตเด•เตฝ
  • เด’เดฐเต‡เดธเดฎเดฏเด‚ เดจเดฟเดฐเดตเดงเดฟ เดตเตเดฏเดคเตเดฏเดธเตเดค เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เด•เดดเดฟเดตเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเต เดจเตฝเด•เดฟเด•เตเด•เตŠเดฃเตเดŸเต, เด’เดดเดฟเดตเดพเด•เตเด•เตฝ เด—เตเดฐเต‚เดชเตเดชเตเด•เตพเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต. เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เด—เตเดฐเต‚เดชเตเดชเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เด…เดต เด’เดฐเตเดฎเดฟเดšเตเดšเต เด‰เดฏเตผเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเด‚, เดชเตเดคเดฟเดฏ เด’เดดเดฟเดตเดพเด•เตเด•เตฝ เดคเดฐเด™เตเด™เตพ ExceptionGroup, BaseExceptionGroup เดŽเดจเตเดจเดฟเดต เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต, เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เด—เตเดฐเต‚เดชเตเดชเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเตเดฏเด•เตเดคเดฟเด—เดค เด’เดดเดฟเดตเดพเด•เตเด•เดฒเตเด•เตพ เดนเตˆเดฒเตˆเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต "เด’เดดเดฟเด•เต†*" เดŽเด•เตเดธเตเดชเตเดฐเดทเตป เดšเต‡เตผเดคเตเดคเต.
  • add_note() เดฐเต€เดคเดฟ BaseException เด•เตเดฒเดพเดธเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต, เด’เดดเดฟเดตเดพเด•เตเด•เดฒเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดŸเต†เด•เตเดธเตเดฑเตเดฑเต เด•เตเดฑเดฟเดชเตเดชเต เด…เดฑเตเดฑเดพเดšเตเดšเตเดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดดเดฟเดตเดพเด•เตเด•เตฝ เดŽเดฑเดฟเดฏเตเดฎเตเดชเต‹เตพ เดฒเดญเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดค เดธเดจเตเดฆเตผเดญเต‹เดšเดฟเดคเดฎเดพเดฏ เดตเดฟเดตเดฐเด™เตเด™เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต.
  • เดจเดฟเดฒเดตเดฟเดฒเต† เดธเตเดตเด•เดพเดฐเตเดฏ เด•เตเดฒเดพเดธเดฟเดจเต† เดชเตเดฐเดคเดฟเดจเดฟเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เดธเตเดตเดฏเด‚ เดคเดฐเด‚ เดšเต‡เตผเดคเตเดคเต. TypeVar เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต‡เด•เตเด•เดพเตพ เดฒเดณเดฟเดคเดฎเดพเดฏ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด…เดคเดฟเดจเตเดฑเต† เด•เตเดฒเดพเดธเดฟเดจเตเดฑเต† เด’เดฐเต เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเตฝเด•เตเดจเตเดจ เดฐเต€เดคเดฟเด•เตพ เดตเตเดฏเดพเด–เตเดฏเดพเดจเดฟเด•เตเด•เดพเตป Self เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เด•เตเดฒเดพเดธเต 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, ) -> เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ: run_query("เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเด•") # เดถเดฐเดฟ run_query(literal_string) # ok run_query( "SELECT * FROM" + เดฒเดฟเดฑเตเดฑเดฑเตฝ_เดธเตเดŸเตเดฐเดฟเด‚เด—เต) # ok run_query(arbitrary_string) # Error run_query( # Error f"SELECT * FROM เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเต‡เดฐเต = {arbitrary_string}" )
  • TypeVarTuple เดคเดฐเด‚ เดšเต‡เตผเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต TypeVar-เตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดœเดจเดฑเดฟเด•เตโ€Œเดธเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เด’เดฐเต เดคเดฐเดฎเดฒเตเดฒ, เดฎเดฑเดฟเดšเตเดšเต เด…เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดคเดฎเดพเดฏ เดŽเดฃเตเดฃเด‚ เดคเดฐเด™เตเด™เดณเดพเดฃเต.
  • เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเดฟเตฝ TOML เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดชเดพเดดเตโ€Œเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดณเตเดณ เดŸเต‹เด‚เดฒเดฟเดฌเต เดฎเตŠเดกเตเดฏเต‚เตพ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเต.
  • เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเตเด‚ เด“เดชเตเดทเดฃเตฝ เด†เดฏเดคเตเดฎเดพเดฏ เดซเต€เตฝเดกเตเด•เตพ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเตป เด†เดตเดถเตเดฏเดฎเดพเดฏเดคเตเด‚ เด…เดฒเตเดฒเดพเดคเตเดคเดคเตเดฎเดพเดฏ เดฒเต‡เดฌเดฒเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดค เดจเดฟเด˜เดฃเตเดŸเตเด•เตเด•เดณเตเดŸเต† (TypedDict) เดตเตเดฏเด•เตเดคเดฟเด—เดค เด˜เดŸเด•เด™เตเด™เตพ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เดธเดพเดงเดฟเด•เตเด•เตเด‚ (เดกเดฟเดซเต‹เตพเดŸเตเดŸเดพเดฏเดฟ, เดฎเตŠเดคเตเดคเด‚ เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเตผ เดคเต†เดฑเตเดฑเต เดŽเดจเตเดจเต เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒเต†เด™เตเด•เดฟเตฝ, เดŽเดฒเตเดฒเดพ เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดค เดซเต€เตฝเดกเตเด•เดณเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต). เด•เตเดฒเดพเดธเต เดฎเต‚เดตเดฟ(TypedDict): เดถเต€เตผเดทเด•เด‚: str year: Not Required[int] m1: Movie = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # เดถเดฐเดฟ (เดตเตผเดท เดซเต€เตฝเดกเต เด“เดชเตเดทเดฃเดฒเดพเดฃเต) m3: เดธเดฟเดจเดฟเดฎ = {โ€œเดตเตผเดทเด‚โ€: 2022} # เดชเดฟเดถเด•เต, เด†เดตเดถเตเดฏเดฎเดพเดฏ เดŸเตˆเดฑเตเดฑเดฟเตฝ เดซเต€เตฝเดกเต เดชเต‚เดฐเดฟเดชเตเดชเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ)
  • เด’เดฐเต เด•เต‚เดŸเตเดŸเด‚ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด•เดพเดคเตเดคเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด•เต‹เตบเดŸเต†เด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต เดฎเดพเดจเต‡เดœเตผ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† TaskGroup เด•เตเดฒเดพเดธเต เด…เดธเดฟเตปเดธเดฟเดฏเต‹ เดฎเตŠเดกเตเดฏเต‚เดณเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเดคเตเดคเต. เด’เดฐเต เด—เตเดฐเต‚เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเต create_task() เดฐเต€เดคเดฟ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. async def main(): asyncio.TaskGroup() tg เด†เดฏเดฟ async: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("เดฐเดฃเตเดŸเต เดœเต‹เดฒเดฟเด•เดณเตเด‚ เด‡เดชเตเดชเต‹เตพ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเดฏเดฟ .")
  • เด•เตเดฒเดพเดธเตเด•เตพเด•เตเด•เตเด‚ เดฐเต€เดคเดฟเด•เตพเด•เตเด•เตเด‚ เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพเด•เตเด•เตเดฎเดพเดฏเดฟ @dataclass_transform decorator เดšเต‡เตผเดคเตเดคเต, เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เดŸเตˆเดชเตเดชเต เดšเต†เด•เตเด•เดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ @dataclasses.dataclass decorator เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเดฟเดจเต† เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดšเตเดตเดŸเต†เดฏเตเดณเตเดณ เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ, เด•เดธเตเดฑเตเดฑเดฎเตผ เดฎเต‹เดกเตฝ เด•เตเดฒเดพเดธเต, เดคเดฐเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, @dataclasses.dataclass decorator เด‰เดณเตเดณ เด’เดฐเต เด•เตเดฒเดพเดธเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏเดฟ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเด‚, เด…เดคเดพเดฏเดคเต. เดเดกเดฟเดฏเตเด‚ เดจเต†เดฏเดฟเด‚ เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด•เดณเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต __init__ เดฐเต€เดคเดฟ เด‰เดณเตเดณเดคเต เดชเต‹เดฒเต†. @dataclass_transform() class ModelBase: ... class CustomerModel(ModelBase): id: int name: str
  • เดฑเต†เด—เตเดฒเตผ เดŽเด•เตเดธเตเดชเตเดฐเดทเดจเตเด•เดณเดฟเตฝ, เด†เดฑเตเดฑเต‹เดฎเดฟเด•เต เด—เตเดฐเต‚เดชเตเดชเดฟเด‚เด—เตเด‚ ((?>...)) เดชเตŠเดธเดธเต€เดตเต เด•เตเดตเดพเดฃเตเดŸเดฟเดซเดฏเดฑเตเด•เดณเตเด‚ (*+, ++, ?+, {m,n}+) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดšเต‡เตผเดคเตเดคเดฟเดŸเตเดŸเตเดฃเตเดŸเต.
  • sys.path-เดฒเต‡เด•เตเด•เตเดณเตเดณ เดธเตเดฐเด•เตเดทเดฟเดคเดฎเดฒเตเดฒเดพเดคเตเดค เดซเดฏเตฝ เดชเดพเดคเด•เดณเตเดŸเต† เดฏเดพเดจเตเดคเตเดฐเดฟเด• เด…เดฑเตเดฑเดพเดšเตเดšเตโ€Œเดฎเต†เดจเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต "-P" เด•เดฎเดพเตปเดกเต เดฒเตˆเตป เด“เดชเตเดทเดจเตเด‚ PYTHONSAFEPATH เดŽเตปเดตเดฏเต‹เตบเดฎเต†เดจเตเดฑเต เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเตเด‚ เดšเต‡เตผเดคเตเดคเต.
  • เดตเดฟเตปเดกเต‹เดธเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดฟเดจเดพเดฏเตเดณเตเดณ py.exe เดฏเต‚เดŸเตเดŸเดฟเดฒเดฟเดฑเตเดฑเดฟ เด—เดฃเตเดฏเดฎเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดฟ, โ€œ-V:โ€ เดตเดพเด•เตเดฏเด˜เดŸเดจเดฏเตโ€Œเด•เตเด•เตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. / " เด‡เดคเดฟเดจเตเดชเตเดฑเดฎเต† "- . "
  • เดธเดฟ เดŽเดชเดฟเดเดฏเดฟเดฒเต† เดชเดฒ เดฎเดพเด•เตเดฐเต‹เด•เดณเตเด‚ เดฑเต†เด—เตเดฒเตผ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเด•เต เด‡เตปเดฒเตˆเตป เดซเด‚เด—เตโ€Œเดทเดจเตเด•เดณเดพเดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต.
  • uu, cgi, เดชเตˆเดชเตเดชเตเด•เตพ, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, and sunau เดฎเตŠเดกเตเดฏเต‚เดณเตเด•เตพ เดŽเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. 3.13 เดฑเดฟเดฒเต€เดธเต. PyUnicode_Encode* เดซเด‚เด—เตโ€Œเดทเดจเตเด•เตพ เดจเต€เด•เตเด•เด‚ เดšเต†เดฏเตโ€Œเดคเต.

เด…เดตเดฒเด‚เดฌเด‚: opennet.ru

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•