เจชเจพเจˆเจฅเจจ 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% เจฆเฉ€ เจ•เฉ‹เจก เจเจ—เจœเจผเฉ€เจ•เจฟเจŠเจธเจผเจจ เจธเจชเฉ€เจก เจตเจฟเฉฑเจš เจตเจพเจงเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ”เจธเจคเจจ, เจชเจพเจˆเจชเจฐเจซเจพเจฐเจฎเฉˆเจ‚เจธ เจŸเฉˆเจธเจŸ เจธเฉ‚เจŸ 'เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ 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 เจ•เจฒเจพเจธ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, เจœเจฟเจธ เจจเจพเจฒ เจคเฉเจธเฉ€เจ‚ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจจเจพเจฒ เจ‡เฉฑเจ• เจŸเฉˆเจ•เจธเจŸ เจจเฉ‹เจŸ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจชเฉเจฐเจธเฉฐเจ—เจฟเจ• เจœเจพเจฃเจ•เจพเจฐเฉ€ เจœเฉ‹เฉœเจจเจพ เจœเฉ‹ เจ•เจฟ เจ…เจชเจตเจพเจฆ เจฆเฉ‡ เจธเฉเฉฑเจŸเฉ‡ เจœเจพเจฃ 'เจคเฉ‡ เจ‰เจชเจฒเจฌเจง เจจเจนเฉ€เจ‚ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค
  • เจฎเฉŒเจœเฉ‚เจฆเจพ เจชเฉเจฐเจพเจˆเจตเฉ‡เจŸ เจ•เจฒเจพเจธ เจฆเฉ€ เจจเฉเจฎเจพเจ‡เฉฐเจฆเจ—เฉ€ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจธเจตเฉˆ เจ•เจฟเจธเจฎ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค เจธเจตเฉˆ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ‰เจนเจจเจพเจ‚ เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจเจจเฉ‹เจŸเฉ‡เจŸ เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ เจœเฉ‹ เจŸเจพเจˆเจชเจตเจฐ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจจเจพเจฒเฉ‹เจ‚ เจ‡เจธเจฆเฉ€ เจ•เจฒเจพเจธ เจฆเฉ€ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจจเฉ‚เฉฐ เจธเจฐเจฒ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจตเจพเจชเจธ เจ•เจฐเจฆเฉ‡ เจนเจจเฅค เจ•เจฒเจพเจธ MyLock: def __enter__(self) -> Self: self.lock() เจตเจพเจชเจธเฉ€ เจธเจตเฉˆ
  • เจ‡เฉฑเจ• เจตเจฟเจธเจผเฉ‡เจธเจผ เจฒเจฟเจŸเจฐเจฒเจธเจŸเฉเจฐเจฟเฉฐเจ— เจ•เจฟเจธเจฎ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจนเฉˆ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจฟเจฐเจซเจผ เจ‰เจน เจธเจŸเฉเจฐเจฟเฉฐเจ— เจฒเจฟเจŸเจฐเจฒ เจธเจผเจพเจฎเจฒ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจ เจœเฉ‹ เจฒเจฟเจŸเจฐเจฒเจธเจŸเฉเจฐเจฟเฉฐเจ— เจ•เจฟเจธเจฎ เจฆเฉ‡ เจ…เจจเฉเจ•เฉ‚เจฒ เจนเจจ (เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ, เจฌเฉ‡เจ…เจฐ เจ…เจคเฉ‡ เจฒเจฟเจŸเจฐเจฒเจธเจŸเฉเจฐเจฟเฉฐเจ— เจธเจคเจฐ, เจชเจฐ เจฎเจจเจฎเจพเจจเฉ‡ เจœเจพเจ‚ เจธเฉฐเจฏเฉเจ•เจค เจธเจŸเฉเจฐเจฟเฉฐเจ— เจจเจนเฉ€เจ‚)เฅค LiteralString เจ•เจฟเจธเจฎ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจคเฉฑเจ• เจธเจŸเฉเจฐเจฟเฉฐเจ— เจ†เจฐเจ—เฉ‚เจฎเฉˆเจ‚เจŸเจพเจ‚ เจฆเฉ‡ เจชเจพเจธ เจนเฉ‹เจฃ เจจเฉ‚เฉฐ เจธเฉ€เจฎเจฟเจค เจ•เจฐเจจ เจฒเจˆ เจ•เฉ€เจคเฉ€ เจœเจพ เจธเจ•เจฆเฉ€ เจนเฉˆ, เจธเจคเจฐ เจฆเฉ‡ เจญเจพเจ—เจพเจ‚ เจฆเฉ‡ เจ†เจชเจนเฉเจฆเจฐเฉ‡ เจฌเจฆเจฒ เจœเจฟเจธ เจตเจฟเฉฑเจš เจ•เจฎเจœเจผเฉ‹เจฐเฉ€เจ†เจ‚ เจชเฉˆเจฆเจพ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ, เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, SQL เจชเฉเฉฑเจ›เจ—เจฟเฉฑเจ›เจพเจ‚ เจœเจพเจ‚ เจธเจผเฉˆเฉฑเจฒ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจฒเจˆ เจธเจคเจฐ เจฌเจฃเจพเจ‰เจฃ เจตเฉ‡เจฒเฉ‡เฅค def run_query(sql: LiteralString) -> ... ... def เจ•เจพเจฒเจฐ( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> เจ•เฉ‹เจˆ เจจเจนเฉ€เจ‚: run_query ("เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ * เจšเฉเจฃเฉ‹") # เจ เฉ€เจ• เจนเฉˆ เจฐเจจ_เจ•เจตเฉ‡เจฐเฉ€ (เจฒเจฟเจŸเจฐเจฒ_เจธเจŸเฉเจฐเจฟเฉฐเจ—) # เจ“เจ•เฉ‡ เจฐเจจ_เจ•เจตเฉ‡เจฐเฉ€ ("เจšเฉเจฃเฉ‹ * เจซเจฐเจฎ" + เจฒเจฟเจŸเจฐเจฒ_เจธเจŸเฉเจฐเจฟเฉฐเจ—) # เจ เฉ€เจ• เจนเฉˆ เจฐเจจ_เจ•เจตเฉ‡เจฐเฉ€ (เจ†เจฐเจฌเจฟเจŸเจฐเฉ‡เจฐเฉ€_เจธเจŸเฉเจฐเจฟเฉฐเจ—) # เจ—เจฒเจคเฉ€ เจฐเจจ_เจ•เจตเฉ‡เจฐเฉ€ (# เจ—เจฒเจคเฉ€ f"เจšเฉเจฃเฉ‹ * เจตเจฟเจฆเจฟเจ†เจฐเจฅเฉ€เจ†เจ‚ เจคเฉ‹เจ‚ เจœเจฟเฉฑเจฅเฉ‡ เจจเจพเจฎ = {เจ†เจฐเจฌเจฟเจŸเจฐเฉ‡เจฐเฉ€_เจธเจŸเฉเจฐเจฟเฉฐเจ—}")
  • TypeVarTuple เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ, TypeVar เจฆเฉ‡ เจ‰เจฒเจŸ, เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจœเฉˆเจจเจฐเจฟเจ• เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉˆ, เจœเฉ‹ เจ‡เฉฑเจ• เจ•เจฟเจธเจฎ เจจเฉ‚เฉฐ เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฎเจจเจฎเจพเจจเฉ€ เจธเฉฐเจ–เจฟเจ† เจจเฉ‚เฉฐ เจ•เจตเจฐ เจ•เจฐเจฆเจพ เจนเฉˆเฅค
  • เจธเจŸเฉˆเจ‚เจกเจฐเจก เจฒเจพเจ‡เจฌเฉเจฐเฉ‡เจฐเฉ€ เจตเจฟเฉฑเจš TOML เจซเจพเจฐเจฎเฉˆเจŸ เจจเฉ‚เฉฐ เจชเจพเจฐเจธ เจ•เจฐเจจ เจฒเจˆ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจŸเฉ‹เจฎเจฒเจฟเจฌ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจธเจผเจพเจฎเจฒ เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค
  • เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ…เจคเฉ‡ เจตเจฟเจ•เจฒเจชเจฟเจ• เจ–เฉ‡เจคเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจจ เจฒเจˆ เจŸเจพเจˆเจช เจ•เฉ€เจคเฉ‡ เจธเจผเจฌเจฆเจ•เฉ‹เจธเจผเจพเจ‚ (เจŸเจพเจˆเจชเจกเจฟเจ•เจŸ) เจฆเฉ‡ เจตเจฟเจ…เจ•เจคเฉ€เจ—เจค เจคเฉฑเจคเจพเจ‚ เจจเฉ‚เฉฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจ…เจคเฉ‡ เจ—เฉˆเจฐ-เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจฒเฉ‡เจฌเจฒเจพเจ‚ เจจเจพเจฒ เจšเจฟเฉฐเจจเฉเจนเจฟเจค เจ•เจฐเจจเจพ เจธเฉฐเจญเจต เจนเฉˆ (เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจธเจพเจฐเฉ‡ เจ˜เฉ‹เจธเจผเจฟเจค เจ–เฉ‡เจคเจฐ เจฒเฉ‹เฉœเฉ€เจ‚เจฆเฉ‡ เจนเจจ เจœเฉ‡เจ•เจฐ เจ•เฉเฉฑเจฒ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐ เจ—เจฒเจค 'เจคเฉ‡ เจธเฉˆเฉฑเจŸ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ)เฅค เจ•เจฒเจพเจธ เจฎเฉ‚เจตเฉ€(เจŸเจพเจˆเจชเจกเจกเจฟเจ•เจŸ): เจธเจฟเจฐเจฒเฉ‡เจ–: str เจธเจพเจฒ: NotRequired[int] m1: เจฎเฉ‚เจตเฉ€ = {"เจŸเจพเจˆเจŸเจฒ": "เจฌเจฒเฉˆเจ• เจชเฉˆเจ‚เจฅเจฐ", "เจธเจพเจฒ": 2018} # OK m2: เจฎเฉ‚เจตเฉ€ = {"เจŸเจพเจˆเจŸเจฒ": "เจธเจŸเจพเจฐ เจตเจพเจฐเจœเจผ" } # เจ เฉ€เจ• เจนเฉˆ (เจธเจพเจฒ เจ–เฉ‡เจคเจฐ เจตเจฟเจ•เจฒเจชเจฟเจ• เจนเฉˆ) m3: เจฎเฉ‚เจตเฉ€ = {โ€œเจธเจพเจฒโ€: 2022} # เจ—เจฒเจคเฉ€, เจฒเฉ‹เฉœเฉ€เจ‚เจฆเจพ เจธเจฟเจฐเจฒเฉ‡เจ– เจ–เฉ‡เจคเจฐ เจจเจนเฉ€เจ‚ เจญเจฐเจฟเจ† เจ—เจฟเจ†)
  • TaskGroup เจ•เจฒเจพเจธ เจจเฉ‚เฉฐ เจ…เจธเจฟเฉฐเจ•เจฐเฉ‹เจจเจธ เจธเฉฐเจฆเจฐเจญ เจชเฉเจฐเจฌเฉฐเจงเจ• เจฆเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เจฐเจจ เจฆเฉ‡ เจจเจพเจฒ asyncio เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆ เจœเฉ‹ เจ•เจพเจฐเจœเจพเจ‚ เจฆเฉ‡ เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจฆเฉ‡ เจชเฉ‚เจฐเจพ เจนเฉ‹เจฃ เจฆเฉ€ เจ‰เจกเฉ€เจ• เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‡เฉฑเจ• เจธเจฎเฉ‚เจน เจตเจฟเฉฑเจš เจ•เจพเจฐเจœ เจœเฉ‹เฉœเจจเจพ create_task() เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("เจฆเฉ‹เจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจนเฉเจฃ เจชเฉ‚เจฐเฉ‡ เจนเฉ‹ เจ—เจ เจนเจจ) .")
  • เจ•เจฒเจพเจธเจพเจ‚, เจคเจฐเฉ€เจ•เจฟเจ†เจ‚ เจ…เจคเฉ‡ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจฒเจˆ @dataclass_transform เจธเจœเจพเจตเจŸ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ†, เจœเจฆเฉ‹เจ‚ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, เจธเจฅเจฟเจฐ เจ•เจฟเจธเจฎ เจฆเฉ€ เจœเจพเจ‚เจš เจชเฉเจฐเจฃเจพเจฒเฉ€ เจ†เจฌเจœเฉˆเจ•เจŸ เจจเฉ‚เฉฐ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจฎเฉฐเจจเจฆเฉ€ เจนเฉˆ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ @dataclasses.dataclass เจธเจœเจพเจตเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพ เจฐเจนเฉ€ เจนเฉˆเฅค เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ€ เจ‰เจฆเจพเจนเจฐเจจ เจตเจฟเฉฑเจš, CustomerModel เจ•เจฒเจพเจธ, เจ•เจฟเจธเจฎเจพเจ‚ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเจฆเฉ‡ เจธเจฎเฉ‡เจ‚, @dataclasses.dataclass เจธเจœเจพเจตเจŸ เจตเจพเจฒเฉ‡ เจ•เจฒเจพเจธ เจตเจพเจ‚เจ— เจนเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจ•เฉ€เจคเฉ€ เจœเจพเจตเฉ‡เจ—เฉ€, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ เจ‡เฉฑเจ• __init__ เจตเจฟเจงเฉ€ เจนเฉˆ เจœเฉ‹ id เจ…เจคเฉ‡ เจจเจพเจฎ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจจเฉ‚เฉฐ เจธเจตเฉ€เจ•เจพเจฐ เจ•เจฐเจฆเฉ€ เจนเฉˆเฅค @dataclass_transform() เจ•เจฒเจพเจธ เจฎเจพเจกเจฒเจฌเฉ‡เจธ: ... เจ•เจฒเจพเจธ CustomerModel(ModelBase): id: int name: str
  • เจฐเฉˆเจ—เฉ‚เจฒเจฐ เจธเจฎเฉ€เจ•เจฐเจจเจพเจ‚ เจตเจฟเฉฑเจš, เจชเจฐเจฎเจพเจฃเฉ‚ เจธเจฎเฉ‚เจนเฉ€เจ•เจฐเจจ (?>...)) เจ…เจคเฉ‡ เจ…เจงเจฟเจ•เจพเจฐเจค เจฎเจพเจคเจฐเจพเจตเจพเจ‚ (*+, ++, ?+, {m,n}+) เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจ เจฆเฉ€ เจฏเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค
  • sys.path 'เจคเฉ‡ เจธเฉฐเจญเจพเจตเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจซเจพเจˆเจฒ เจฎเจพเจฐเจ—เจพเจ‚ เจฆเฉ‡ เจ†เจŸเฉ‹เจฎเฉˆเจŸเจฟเจ• เจ…เจŸเฉˆเจšเจฎเฉˆเจ‚เจŸ เจจเฉ‚เฉฐ เจ…เจฏเฉ‹เจ— เจ•เจฐเจจ เจฒเจˆ "-P" เจ•เจฎเจพเจ‚เจก เจฒเจพเจˆเจจ เจตเจฟเจ•เจฒเจช เจ…เจคเฉ‡ PYTHONSAFEPATH เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉ‡เจฐเฉ€เจเจฌเจฒ เจธเจผเจพเจฎเจฒ เจ•เฉ€เจคเจพ เจ—เจฟเจ†เฅค
  • เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจชเจฒเฉ‡เจŸเจซเจพเจฐเจฎ เจฒเจˆ py.exe เจ‰เจชเจฏเฉ‹เจ—เจคเจพ เจตเจฟเฉฑเจš เจฎเจนเฉฑเจคเจตเจชเฉ‚เจฐเจจ เจธเฉเจงเจพเจฐ เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆ, "-V:" เจธเฉฐเจŸเฉˆเจ•เจธ เจฒเจˆ เจธเจฎเจฐเจฅเจจ เจœเฉ‹เฉœเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค / " เจ‡เจธ เจฆเฉ‡ เจจเจพเจฒ "- . "
  • C API เจตเจฟเฉฑเจš เจฌเจนเฉเจค เจธเจพเจฐเฉ‡ เจฎเฉˆเจ•เจฐเฉ‹ เจจเจฟเจฏเจฎเจค เจœเจพเจ‚ เจธเจฅเจฟเจฐ เจ‡เจจเจฒเจพเจˆเจจ เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจตเจฟเฉฑเจš เจฌเจฆเจฒ เจœเจพเจ‚เจฆเฉ‡ เจนเจจเฅค
  • uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, เจ…เจคเฉ‡ sunau เจฎเฉ‹เจกเฉ€เจŠเจฒ เจจเฉ‚เฉฐ เจฌเจฐเจคเจฐเจซเจผ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ เจ…เจคเฉ‡ P เจจเฉ‚เฉฐ เจนเจŸเจพ เจฆเจฟเฉฑเจคเจพ เจœเจพเจตเฉ‡เจ—เจพเฅค 3.13 เจฐเจฟเจฒเฉ€เจœเจผ PyUnicode_Encode* เจซเฉฐเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจนเจŸเจพเจ‡เจ† เจ—เจฟเจ†เฅค

เจธเจฐเฉ‹เจค: opennet.ru

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹