Python เช•เซ‹เชกเชจเซ€ 4 เชฎเชฟเชฒเชฟเชฏเชจ เชฒเซ€เชŸเซ€เช“ เชŸเชพเช‡เชชเชšเซ‡เช• เช•เชฐเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช—. เชญเชพเช— 2

เช†เชœเซ‡ เช…เชฎเซ‡ เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ€ เชฒเชพเช–เซ‹ เชฒเชพเชˆเชจเซ‹ เชฎเชพเชŸเซ‡ เชŸเชพเชˆเชช เช•เช‚เชŸเซเชฐเซ‹เชฒเชจเซเช‚ เช†เชฏเซ‹เชœเชจ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เช•เชฐเซเชฏเซเช‚ เชคเซ‡ เชตเชฟเชถเซ‡เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€เชจเชพ เช…เชจเซเชตเชพเชฆเชจเซ‹ เชฌเซ€เชœเซ‹ เชญเชพเช— เชชเซเชฐเช•เชพเชถเชฟเชค เช•เชฐเซ€ เชฐเชนเซเชฏเชพเช‚ เช›เซ€เช.

Python เช•เซ‹เชกเชจเซ€ 4 เชฎเชฟเชฒเชฟเชฏเชจ เชฒเซ€เชŸเซ€เช“ เชŸเชพเช‡เชชเชšเซ‡เช• เช•เชฐเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช—. เชญเชพเช— 2

โ†’ เชญเชพเช— เชเช• เชตเชพเช‚เชšเซ‹

เชธเชคเซเชคเชพเชตเชพเชฐ เชชเซเชฐเช•เชพเชฐ เช†เชงเชพเชฐ (PEP 484)

เช…เชฎเซ‡ เชนเซ‡เช• เชตเซ€เช• 2014 เชฆเชฐเชฎเชฟเชฏเชพเชจ เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธเชฎเชพเช‚ mypy เชธเชพเชฅเซ‡ เช…เชฎเชพเชฐเชพ เชชเซเชฐเชฅเชฎ เช—เช‚เชญเซ€เชฐ เชชเซเชฐเชฏเซ‹เช—เซ‹ เช•เชฐเซเชฏเชพ. เชนเซ‡เช• เชตเซ€เช• เช เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธ เชฆเซเชตเชพเชฐเชพ เชนเซ‹เชธเซเชŸ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชคเซ€ เชเช•-เช…เช เชตเชพเชกเชฟเชฏเชพเชจเซ€ เช‡เชตเซ‡เชจเซเชŸ เช›เซ‡. เช† เชธเชฎเชฏ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช•เชฐเซเชฎเชšเชพเชฐเซ€เช“ เชคเซ‡เช“ เชœเซ‡ เช‡เชšเซเช›เซ‡ เช›เซ‡ เชคเซ‡เชจเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเซ€ เชถเช•เซ‡ เช›เซ‡! เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธเชจเชพ เช•เซ‡เชŸเชฒเชพเช• เชธเซŒเชฅเซ€ เชชเซเชฐเชธเชฟเชฆเซเชง เชŸเซ‡เช•เซเชจเซ‰เชฒเซ‰เชœเซ€ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เช†เชจเชพ เชœเซ‡เชตเซ€ เช‡เชตเซ‡เชจเซเชŸเซเชธเชฎเชพเช‚ เชถเชฐเซ‚ เชฅเชฏเชพ เชนเชคเชพ. เช† เชชเซเชฐเชฏเซ‹เช—เชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเซ‡ เชจเชฟเชทเซเช•เชฐเซเชท เชชเชฐ เช†เชตเซเชฏเชพ เช•เซ‡ mypy เช†เชถเชพเชธเซเชชเชฆ เชฒเชพเช—เซ‡ เช›เซ‡, เชœเซ‹ เช•เซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเชœเซ€ เชตเซเชฏเชพเชชเช• เช‰เชชเชฏเซ‹เช— เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เชจเชฅเซ€.

เชคเซ‡ เชธเชฎเชฏเซ‡, เชชเชพเชฏเชฅเซ‹เชจ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชธเช‚เช•เซ‡เชค เชชเซเชฐเชฃเชพเชฒเซ€เช“เชจเซ‡ เชฎเชพเชจเช• เชฌเชจเชพเชตเชตเชพเชจเซ‹ เชตเชฟเชšเชพเชฐ เชนเชตเชพเชฎเชพเช‚ เชนเชคเซ‹. เชฎเซ‡เช‚ เช•เชนเซเชฏเซเช‚ เชคเซ‡เชฎ, เชชเชพเชฏเชฅเซ‹เชจ 3.0 เชฅเซ€ เชซเช‚เช•เซเชถเชจเซเชธ เชฎเชพเชŸเซ‡ เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเซ‹ เชถเช•เซเชฏ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เช† เชซเช•เซเชค เชฎเชจเชธเซเชตเซ€ เช…เชญเชฟเชตเซเชฏเช•เซเชคเชฟเช“ เชนเชคเชพ, เชตเซเชฏเชพเช–เซเชฏเชพเชฏเชฟเชค เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เช…เชจเซ‡ เชธเชฟเชฎเซ‡เชจเซเชŸเชฟเช•เซเชธ เชตเชฟเชจเชพ. เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชเช•เซเชเซ‡เช•เซเชฏเซเชถเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เช† เชŸเซ€เช•เชพเช“, เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡, เช–เชพเชฒเซ€ เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€. เชนเซ‡เช• เชตเซ€เช• เชชเช›เซ€, เช…เชฎเซ‡ เชธเชฟเชฎเซ‡เชจเซเชŸเชฟเช•เซเชธเชจเซ‡ เชฎเชพเชจเช• เชฌเชจเชพเชตเชตเชพ เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚. เช† เช•เชพเชฐเซเชฏ เช‰เชฆเชญเชต เชคเชฐเชซ เชฆเซ‹เชฐเซ€ เช—เชฏเซเช‚ PEP 484 (เช—เซเช‡เชกเซ‹ เชตเชพเชจ เชฐเซ‹เชธเชฎ, เชฒเซเชฏเซเช•เชพเช เชฒเช‚เช—เชพ เช…เชจเซ‡ เชฎเซ‡เช‚ เช† เชฆเชธเซเชคเชพเชตเซ‡เชœ เชชเชฐ เชธเชนเชฏเซ‹เช— เช•เชฐเซเชฏเซ‹ เช›เซ‡).

เช…เชฎเชพเชฐเชพ เชนเซ‡เชคเซเช“เชจเซ‡ เชฌเซ‡ เชฌเชพเชœเซเชฅเซ€ เชœเซ‹เชˆ เชถเช•เชพเชฏ เช›เซ‡. เชชเซเชฐเชฅเชฎ, เช…เชฎเซ‡ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เชธเชฎเช—เซเชฐ เชชเชพเชฏเชฅเซ‹เชจ เช‡เช•เซ‹เชธเชฟเชธเซเชŸเชฎ เชŸเชพเช‡เชช เชธเช‚เช•เซ‡เชคเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชเช• เชธเชพเชฎเชพเชจเซเชฏ เช…เชญเชฟเช—เชฎ เช…เชชเชจเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡ (เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ "เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจ" เชจเชพ เชธเชฎเช•เช•เซเชท เชคเชฐเซ€เช•เซ‡ เชตเชชเชฐเชพเชคเซ‹ เชถเชฌเซเชฆ). เช†, เชธเช‚เชญเชตเชฟเชค เชœเซ‹เช–เชฎเซ‹เชจเซ‡ เชœเซ‹เชคเชพเช‚, เช˜เชฃเชพ เชชเชฐเชธเซเชชเชฐ เช…เชธเช‚เช—เชค เช…เชญเชฟเช—เชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชคเชพเช‚ เชตเชงเซ เชธเชพเชฐเซเช‚ เชฐเชนเซ‡เชถเซ‡. เชฌเซ€เชœเซเช‚, เช…เชฎเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชธเชฎเซเชฆเชพเชฏเชจเชพ เช˜เชฃเชพ เชธเชญเซเชฏเซ‹ เชธเชพเชฅเซ‡ เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจ เชฎเชฟเช•เซ‡เชจเชฟเชเชฎเซเชธเชจเซ€ เช–เซเชฒเซเชฒเซ‡เช†เชฎ เชšเชฐเซเชšเชพ เช•เชฐเชตเชพ เชฎเชพเช—เซ€เช เช›เซ€เช. เช† เช‡เชšเซเช›เชพ เช†เช‚เชถเชฟเช• เชฐเซ€เชคเซ‡ เช เชนเช•เซ€เช•เชค เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฐเซเชงเชพเชฐเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เช•เซ‡ เช…เชฎเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹เชจเชพ เชตเซเชฏเชพเชชเช• เชฒเซ‹เช•เซ‹เชจเซ€ เชจเชœเชฐเชฎเชพเช‚ เชญเชพเชทเชพเชจเชพ เชฎเซ‚เชณเชญเซ‚เชค เชตเชฟเชšเชพเชฐเซ‹เชฎเชพเช‚เชฅเซ€ "เชงเชฐเซเชฎเชคเซเชฏเชพเช—เซ€" เชœเซ‡เชตเชพ เชฆเซ‡เช–เชพเชตเชพ เชฎเชพเช‚เช—เชคเชพ เชจเชฅเซ€. เชคเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชŸเชพเช‡เชช เช•เชฐเซ‡เชฒเซ€ เชญเชพเชทเชพ เช›เซ‡, เชœเซ‡เชจเซ‡ "เชกเช• เชŸเชพเช‡เชชเชฟเช‚เช—" เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เชธเชฎเซเชฆเชพเชฏเชฎเชพเช‚, เช–เซ‚เชฌ เชœ เชถเชฐเซ‚เช†เชคเชฎเชพเช‚, เชธเซเชฅเชฟเชฐ เชŸเชพเช‡เชชเชฟเช‚เช—เชจเชพ เชตเชฟเชšเชพเชฐ เชชเซเชฐเชคเซเชฏเซ‡ เช•เช‚เชˆเช• เช…เช‚เชถเซ‡ เชถเช‚เช•เชพเชธเซเชชเชฆ เชตเชฒเชฃ เชฎเชฆเชฆ เช•เชฐเซ€ เชถเช•เซเชฏเซเช‚ เชจเชนเซ€เช‚ เชชเชฐเช‚เชคเซ เช‰เชฆเซเชญเชตเซเชฏเซเช‚. เชชเชฐเช‚เชคเซ เชคเซ‡ เชฒเชพเช—เชฃเซ€ เช†เช–เชฐเซ‡ เช•เซเชทเซ€เชฃ เชฅเชˆ เช—เชˆ เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฅเชˆ เช—เชฏเซเช‚ เช•เซ‡ เชธเซเชฅเชฟเชฐ เชŸเชพเชˆเชชเชฟเช‚เช— เชซเชฐเชœเชฟเชฏเชพเชค เชฌเชจเชถเซ‡ เชจเชนเซ€เช‚ (เช…เชจเซ‡ เชฒเซ‹เช•เซ‹เชจเซ‡ เชธเชฎเชœเชพเชฏเซเช‚ เช•เซ‡ เชคเซ‡ เช–เชฐเซ‡เช–เชฐ เช‰เชชเชฏเซ‹เช—เซ€ เช›เซ‡).

เชชเซเชฐเช•เชพเชฐ เชธเช‚เช•เซ‡เชค เชตเชพเช•เซเชฏเชฐเชšเชจเชพ เชœเซ‡ เช†เช–เชฐเซ‡ เช…เชชเชจเชพเชตเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€ เชคเซ‡ เชคเซ‡ เชธเชฎเชฏเซ‡ mypy เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชจ เช†เชชเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚ เชคเซ‡เชจเชพ เชœเซ‡เชตเซเช‚ เชœ เชนเชคเซเช‚. PEP 484 3.5 เชฎเชพเช‚ Python 2015 เชธเชพเชฅเซ‡ เชฐเชœเซ‚ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚. เชชเชพเชฏเชฅเซ‹เชจ เชนเชตเซ‡ เช—เชคเชฟเชถเซ€เชฒ เชฐเซ€เชคเซ‡ เชŸเชพเช‡เชช เช•เชฐเซ‡เชฒเซ€ เชญเชพเชทเชพ เชจ เชนเชคเซ€. เชนเซเช‚ เช† เช˜เชŸเชจเชพเชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เช‡เชคเชฟเชนเชพเชธเชฎเชพเช‚ เชเช• เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ เชธเซ€เชฎเชพเชšเชฟเชนเซเชจเชฐเซ‚เชช เชคเชฐเซ€เช•เซ‡ เชตเชฟเชšเชพเชฐเชตเชพเชจเซเช‚ เชชเชธเช‚เชฆ เช•เชฐเซเช‚ เช›เซเช‚.

เชธเซเชฅเชณเชพเช‚เชคเชฐเชจเซ€ เชถเชฐเซ‚เช†เชค

2015 เชจเชพ เช…เช‚เชคเชฎเชพเช‚, เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธเซ‡ mypy เชชเชฐ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชคเซเชฐเชฃ เชฒเซ‹เช•เซ‹เชจเซ€ เชŸเซ€เชฎ เชฌเชจเชพเชตเซ€. เชคเซ‡เชฎเชพเช‚ เช—เชฟเชกเซ‹ เชตเชพเชจ เชฐเซ‹เชธเชฎ, เช—เซเชฐเซ‡เช— เชชเซเชฐเชพเช‡เชธ เช…เชจเซ‡ เชกเซ‡เชตเชฟเชก เชซเชฟเชถเชฐเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡. เชคเซ‡ เช•เซเชทเชฃเชฅเซ€, เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เช–เซ‚เชฌ เชœ เชเชกเชชเชฅเซ€ เชตเชฟเช•เชธเชฟเชค เชฅเชตเชพ เชฒเชพเช—เซ€. เชฎเชพเชฏเชชเซ€เชจเชพ เชตเชฟเช•เชพเชธเชฎเชพเช‚ เชชเซเชฐเชฅเชฎ เช…เชตเชฐเซ‹เชง เช•เชพเชฎเช—เซ€เชฐเซ€ เชนเชคเซ€. เชฎเซ‡เช‚ เช‰เชชเชฐ เชธเช‚เช•เซ‡เชค เช†เชชเซเชฏเชพ เชฎเซเชœเชฌ, เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชถเชฐเซ‚เช†เชคเชจเชพ เชฆเชฟเชตเชธเซ‹เชฎเชพเช‚ เชฎเซ‡เช‚ mypy เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ C เชฎเชพเช‚ เชญเชพเชทเชพเช‚เชคเชฐเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเชฐเช‚เชคเซ เช† เชตเชฟเชšเชพเชฐ เชนเชฎเชฃเชพเช‚ เชฎเชพเชŸเซ‡ เชธเซ‚เชšเชฟเชฎเชพเช‚เชฅเซ€ เชฌเชนเชพเชฐ เชจเซ€เช•เชณเซ€ เช—เชฏเซ‹ เชนเชคเซ‹. เช…เชฎเซ‡ CPython เชฆเซเชญเชพเชทเชฟเชฏเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฟเชธเซเชŸเชฎ เชšเชฒเชพเชตเชตเชพเชฎเชพเช‚ เช…เชŸเชตเชพเชฏเซ‡เชฒเชพ เชนเชคเชพ, เชœเซ‡ mypy เชœเซ‡เชตเชพ เชธเชพเชงเชจเซ‹ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซเช‚ เชเชกเชชเซ€ เชจเชฅเซ€. (PyPy เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ, JIT เช•เชฎเซเชชเชพเช‡เชฒเชฐ เชธเชพเชฅเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เชชเชพเชฏเชฅเซ‹เชจ เช…เชฎเชฒเซ€เช•เชฐเชฃ, เชชเชฃ เช…เชฎเชจเซ‡ เชฎเชฆเชฆ เช•เชฐเชคเซเช‚ เชจเชฅเซ€.)

เชธเชฆเชจเชธเซ€เชฌเซ‡, เช•เซ‡เชŸเชฒเชพเช• เช…เชฒเซเช—เซ‹เชฐเชฟเชงเชฎเชฟเช• เชธเซเชงเชพเชฐเชพเช“ เช…เชนเซ€เช‚ เช…เชฎเชพเชฐเซ€ เชธเชนเชพเชฏ เชฎเชพเชŸเซ‡ เช†เชตเซเชฏเชพ เช›เซ‡. เชชเซเชฐเชฅเชฎ เชถเช•เซเชคเชฟเชถเชพเชณเซ€ "เชเช•เซเชธเซ€เชฒเซ‡เชŸเชฐ" เช เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ เชšเซ‡เช•เชฟเช‚เช—เชจเซ‹ เช…เชฎเชฒ เชนเชคเซ‹. เช† เชธเซเชงเชพเชฐเชฃเชพ เชชเชพเช›เชณเชจเซ‹ เชตเชฟเชšเชพเชฐ เชธเชฐเชณ เชนเชคเซ‹: เชœเซ‹ mypy เชจเชพ เชชเชพเช›เชฒเชพ เชฐเชจเชฅเซ€ เชคเชฎเชพเชฎ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ€ เช…เชตเชฒเช‚เชฌเชจ เชฌเชฆเชฒเชพเชˆ เชจ เชนเซ‹เชฏ, เชคเซ‹ เช†เชชเชฃเซ‡ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เช…เช—เชพเช‰เชจเชพ เชฐเชจ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช•เซ‡เชถ เช•เชฐเซ‡เชฒ เชกเซ‡เชŸเชพเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชถเช•เซ€เช เช›เซ€เช. เช…เชฎเชพเชฐเซ‡ เชซเช•เซเชค เชธเช‚เชถเซ‹เชงเชฟเชค เชซเชพเช‡เชฒเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเชพ เชชเชฐ เชจเชฟเชฐเซเชญเชฐ เชซเชพเช‡เชฒเซ‹ เชชเชฐ เชชเซเชฐเช•เชพเชฐ เชคเชชเชพเชธ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชนเชคเซ€. Mypy เชชเชฃ เชฅเซ‹เชกเซเช‚ เช†เช—เชณ เชตเชงเซเชฏเซเช‚: เชœเซ‹ เชฎเซ‹เชกเซเชฏเซเชฒเชจเซเช‚ เชฌเชพเชนเซเชฏ เชˆเชจเซเชŸเชฐเชซเซ‡เชธ เชฌเชฆเชฒเชพเชฏเซเช‚ เชจ เชนเซ‹เชฏ, เชคเซ‹ mypy เชงเชพเชฐเซ‡ เช›เซ‡ เช•เซ‡ เช† เชฎเซ‹เชกเซเชฏเซเชฒเชจเซ‡ เช†เชฏเชพเชค เช•เชฐเชจเชพเชฐเชพ เช…เชจเซเชฏ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชคเชชเชพเชธเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€.

เชนเชพเชฒเชจเชพ เช•เซ‹เชกเชจเซ€ เชฎเซ‹เชŸเซ€ เชฎเชพเชคเซเชฐเชพเชฎเชพเช‚ เชŸเซ€เช•เชพ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชšเช•เชพเชธเชฃเซ€เช เช…เชฎเชจเซ‡ เช˜เชฃเซ€ เชฎเชฆเชฆ เช•เชฐเซ€ เช›เซ‡. เชฎเซเชฆเซเชฆเซ‹ เช เช›เซ‡ เช•เซ‡ เช† เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชฎเชพเช‚ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ mypy เชจเชพ เช˜เชฃเชพ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชฐเชจเชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡ เช•เชพเชฐเชฃ เช•เซ‡ เชŸเซ€เช•เชพเช“ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เช‰เชฎเซ‡เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชงเซ€เชฎเซ‡ เชงเซ€เชฎเซ‡ เชธเซเชงเชพเชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. mypy เชจเซเช‚ เชชเซเชฐเชฅเชฎ เชฐเชจ เชนเชœเซ เชชเชฃ เช–เซ‚เชฌ เชœ เชงเซ€เชฎเซเช‚ เชนเชคเซเช‚ เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡เชจเซ€ เชคเชชเชพเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เช˜เชฃเซ€ เชฌเชงเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพ เชนเชคเซ€. เชชเช›เซ€, เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชธเซเชงเชพเชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เชฐเชฟเชฎเซ‹เชŸ เช•เซ‡เชถเซ€เช‚เช— เชฎเชฟเช•เซ‡เชจเชฟเชเชฎ เชฒเชพเช—เซ เช•เชฐเซเชฏเซเช‚. เชœเซ‹ mypy เชถเซ‹เชงเซ‡ เช›เซ‡ เช•เซ‡ เชธเซเชฅเชพเชจเชฟเช• เช•เซ‡เชถ เชœเซ‚เชจเซเช‚ เชนเซ‹เชตเชพเชจเซ€ เชถเช•เซเชฏเชคเชพ เช›เซ‡, เชคเซ‹ เชคเซ‡ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชฏ เชฐเซ€เชชเซ‹เชเซ€เชŸเชฐเซ€เชฎเชพเช‚เชฅเซ€ เชธเชฎเช—เซเชฐ เช•เซ‹เชกเชฌเซ‡เช เชฎเชพเชŸเซ‡ เชตเชฐเซเชคเชฎเชพเชจ เช•เซ‡เชถ เชธเซเชจเซ‡เชชเชถเซ‹เชŸ เชกเชพเช‰เชจเชฒเซ‹เชก เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชชเช›เซ€ เช† เชธเซเชจเซ‡เชชเชถเซ‹เชŸเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชตเชงเชพเชฐเชพเชจเซ€ เชคเชชเชพเชธ เช•เชฐเซ‡ เช›เซ‡. เช†เชจเชพเชฅเซ€ เช…เชฎเชจเซ‡ เชฎเชพเชฏเชชเซ€เชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชตเชงเชพเชฐเชตเชพ เชคเชฐเชซ เชตเชงเซ เชเช• เชฎเซ‹เชŸเซเช‚ เชชเช—เชฒเซเช‚ เชญเชฐเซเชฏเซเช‚ เช›เซ‡.

เช† เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธ เชชเชฐ เชชเซเชฐเช•เชพเชฐ เชšเซ‡เช•เชฟเช‚เช—เชจเชพ เชเชกเชชเซ€ เช…เชจเซ‡ เช•เซเชฆเชฐเชคเซ€ เช…เชชเชจเชพเชตเชตเชพเชจเซ‹ เชธเชฎเชฏเช—เชพเชณเซ‹ เชนเชคเซ‹. 2016 เชจเชพ เช…เช‚เชค เชธเซเชงเซ€เชฎเชพเช‚, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจ เชธเชพเชฅเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ€ เช†เชถเชฐเซ‡ 420000 เชฒเชพเช‡เชจ เชนเชคเซ€. เช˜เชฃเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชŸเชพเช‡เชช เชšเซ‡เช•เชฟเช‚เช— เชฎเชพเชŸเซ‡ เช‰เชคเซเชธเชพเชนเซ€ เชนเชคเชพ. เชตเชงเซ เช…เชจเซ‡ เชตเชงเซ เชตเชฟเช•เชพเชธ เชŸเซ€เชฎเซ‹ เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธ mypy เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€ เชฐเชนเซ€ เชนเชคเซ€.

เชคเซเชฏเชพเชฐเซ‡ เชฌเชงเซเช‚ เชธเชพเชฐเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚, เชชเชฃ เช…เชฎเชพเชฐเซ‡ เชนเชœเซ เช˜เชฃเซเช‚ เช•เชฐเชตเชพเชจเซเช‚ เชนเชคเซเช‚. เช…เชฎเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชธเชฎเชธเซเชฏเชพเชฐเซ‚เชช เชตเชฟเชธเซเชคเชพเชฐเซ‹เชจเซ‡ เช“เชณเช–เชตเชพ เช…เชจเซ‡ เช•เชฏเชพ เชฎเซเชฆเซเชฆเชพเช“เชจเซ‡ เชชเชนเซ‡เชฒเชพ เช‰เช•เซ‡เชฒเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ เชคเซ‡ เชธเชฎเชœเชตเชพ เชฎเชพเชŸเซ‡ เชธเชฎเชฏเชพเช‚เชคเชฐเซ‡ เช†เช‚เชคเชฐเชฟเช• เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพ เชธเชฐเซเชตเซ‡เช•เซเชทเชฃเซ‹ เชนเชพเชฅ เชงเชฐเชตเชพเชจเซเช‚ เชถเชฐเซ‚ เช•เชฐเซเชฏเซเช‚ (เช† เชชเซเชฐเชฅเชพ เช†เชœเซ‡ เชชเชฃ เช•เช‚เชชเชจเซ€เชฎเชพเช‚ เชตเชชเชฐเชพเชฏ เช›เซ‡). เชธเซŒเชฅเซ€ เชฎเชนเชคเซเชตเชชเซ‚เชฐเซเชฃ, เชœเซ‡เชฎ เชคเซ‡ เชธเซเชชเชทเซเชŸ เชฅเชฏเซเช‚, เชฌเซ‡ เช•เชพเชฐเซเชฏเซ‹ เชนเชคเชพ. เชชเซเชฐเชฅเชฎ, เช…เชฎเชจเซ‡ เช•เซ‹เชกเชจเชพ เชตเชงเซ เชชเซเชฐเช•เชพเชฐเชจเชพ เช•เชตเชฐเซ‡เชœเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡, เชฌเซ€เชœเซเช‚, เช…เชฎเชจเซ‡ เชเชกเชชเชฅเซ€ เช•เชพเชฎ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ mypyเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡. เชคเซ‡ เชเช•เชฆเชฎ เชธเซเชชเชทเซเชŸ เชนเชคเซเช‚ เช•เซ‡ เชฎเชพเชฏเชชเซ€เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เช•เช‚เชชเชจเซ€เชจเชพ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซเช‚ เช…เชฎเชพเชฐเซเช‚ เช•เชพเชฐเซเชฏ เชนเชœเซ€ เชชเซ‚เชฐเซเชฃ เชฅเชฏเซเช‚ เชจเชฅเซ€. เช…เชฎเซ‡, เช† เชฌเซ‡ เช•เชพเชฐเซเชฏเซ‹เชจเชพ เชฎเชนเชคเซเชตเชฅเซ€ เชธเช‚เชชเซ‚เชฐเซเชฃเชชเชฃเซ‡ เชตเชพเช•เซ‡เชซ เช›เซ€เช, เชคเซ‡เชฎเชจเซ‡ เช‰เช•เซ‡เชฒเชตเชพ เชฎเชพเชŸเซ‡ เชคเซˆเชฏเชพเชฐ เช›เซ€เช.

เชตเชงเซ เช‰เชคเซเชชเชพเชฆเช•เชคเชพ!

เช‡เชจเซเช•เซเชฐเซ€เชฎเซ‡เชจเซเชŸเชฒ เชšเซ‡เช•เซเชธเซ‡ เชฎเชพเชฏเชชเซ€เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเซเชฏเซเช‚, เชชเชฐเช‚เชคเซ เชธเชพเชงเชจ เชนเชœเซ เชชเชฃ เชชเซ‚เชฐเชคเซเช‚ เชเชกเชชเซ€ เชจเชนเซ‹เชคเซเช‚. เช˜เชฃเซ€ เชตเชงเชพเชฐเชพเชจเซ€ เชคเชชเชพเชธ เชฒเช—เชญเช— เชเช• เชฎเชฟเชจเชฟเชŸ เชธเซเชงเซ€ เชšเชพเชฒเซ€ เชนเชคเซ€. เชคเซ‡เชจเซเช‚ เช•เชพเชฐเชฃ เชšเช•เซเชฐเซ€เชฏ เช†เชฏเชพเชค เชนเชคเซ€. เช† เช•เชฆเชพเชš เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เชฎเซ‹เชŸเชพ เช•เซ‹เชกเชฌเซ‡เช เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชจเชพเชฐ เช•เซ‹เชˆเชชเชฃเชจเซ‡ เช†เชถเซเชšเชฐเซเชฏ เชจเชนเซ€เช‚ เช•เชฐเซ‡. เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชธเซ‡เช‚เช•เชกเซ‹ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเชพ เชธเซ‡เชŸ เชนเชคเชพ, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฆเชฐเซ‡เช• เชชเชฐเซ‹เช•เซเชท เชฐเซ€เชคเซ‡ เชฌเซ€เชœเชพ เชฌเชงเชพเชจเซ‡ เช†เชฏเชพเชค เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เชˆเชฎเซเชชเซ‹เชฐเซเชŸ เชฒเซ‚เชชเชฎเชพเช‚ เช•เซ‹เชˆเชชเชฃ เชซเชพเชˆเชฒ เชฌเชฆเชฒเชพเชˆ เช—เชˆ เชนเซ‹เชฏ, เชคเซ‹ mypy เช เชคเซ‡ เชฒเซ‚เชชเชฎเชพเช‚เชจเซ€ เชคเชฎเชพเชฎ เชซเชพเชˆเชฒเซ‹ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเซ€ เชชเชกเชคเซ€ เชนเชคเซ€, เช…เชจเซ‡ เช˜เชฃเซ€ เชตเช–เชค เชคเซ‡ เชฒเซ‚เชชเชฎเชพเช‚เชฅเซ€ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เช†เชฏเชพเชค เช•เชฐเชคเชพ เช•เซ‹เชˆเชชเชฃ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹. เช†เชตเซเช‚ เชœ เชเช• เชšเช•เซเชฐ เช•เซเช–เซเชฏเชพเชค "เชจเชฟเชฐเซเชญเชฐเชคเชพ เช—เซ‚เช‚เชš" เชนเชคเซเช‚ เชœเซ‡เชฃเซ‡ เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธเชฎเชพเช‚ เช˜เชฃเซ€ เชฎเซเชถเซเช•เซ‡เชฒเซ€ เชŠเชญเซ€ เช•เชฐเซ€ เชนเชคเซ€. เชเช•เชตเชพเชฐ เช† เชฐเชšเชจเชพเชฎเชพเช‚ เช˜เชฃเชพ เชธเซ‹ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹ เชนเชคเชพ, เชœเซเชฏเชพเชฐเซ‡ เชคเซ‡ เช†เชฏเชพเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชชเซเชฐเชคเซเชฏเช•เซเชท เช•เซ‡ เชชเชฐเซ‹เช•เซเชท เชฐเซ€เชคเซ‡, เช˜เชฃเชพ เชชเชฐเซ€เช•เซเชทเชฃเซ‹, เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช‰เชคเซเชชเชพเชฆเชจ เช•เซ‹เชกเชฎเชพเช‚ เชชเชฃ เชฅเชคเซ‹ เชนเชคเซ‹.

เช…เชฎเซ‡ เชชเชฐเชฟเชชเชคเซเชฐ เช…เชตเชฒเช‚เชฌเชจเชจเซ‡ "เช…เชจเชŸเซ‡เชจเซเช—เชฒเชฟเช‚เช—" เชจเซ€ เชถเช•เซเชฏเชคเชพ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ€เชงเซ€, เชชเชฐเช‚เชคเซ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเซ‡ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเช‚เชธเชพเชงเชจเซ‹ เชจเชฅเซ€. เชคเซเชฏเชพเช‚ เช˜เชฃเชพ เชฌเชงเชพ เช•เซ‹เชก เชนเชคเชพ เชœเซ‡เชจเชพเชฅเซ€ เช…เชฎเซ‡ เชชเชฐเชฟเชšเชฟเชค เชจ เชนเชคเชพ. เชชเชฐเชฟเชฃเชพเชฎเซ‡, เช…เชฎเซ‡ เชตเซˆเช•เชฒเซเชชเชฟเช• เช…เชญเชฟเช—เชฎ เชธเชพเชฅเซ‡ เช†เชตเซเชฏเชพ. เช…เชฎเซ‡ "เชจเชฟเชฐเซเชญเชฐเชคเชพ เช—เซ‚เช‚เชšเชตเชฃเซ‹" เชจเซ€ เชนเชพเชœเชฐเซ€เชฎเชพเช‚ เชชเชฃ เชเชกเชชเชฅเซ€ mypy เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เช…เชฎเซ‡ mypy เชกเชฟเชฎเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช† เชฒเช•เซเชทเซเชฏ เชนเชพเช‚เชธเชฒ เช•เชฐเซเชฏเซเช‚ เช›เซ‡. เชกเชฟเชฎเชจ เช เชธเชฐเซเชตเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช›เซ‡ เชœเซ‡ เชฌเซ‡ เชฐเชธเชชเซเชฐเชฆ เชธเซเชตเชฟเชงเชพเช“เชจเซ‹ เช…เชฎเชฒ เช•เชฐเซ‡ เช›เซ‡. เชชเซเชฐเชฅเชฎ, เชคเซ‡ เชฎเซ‡เชฎเชฐเซ€เชฎเชพเช‚ เชธเชฎเช—เซเชฐ เช•เซ‹เชกเชฌเซ‡เช เชตเชฟเชถเซ‡เชจเซ€ เชฎเชพเชนเชฟเชคเซ€ เชธเช‚เช—เซเชฐเชนเชฟเชค เช•เชฐเซ‡ เช›เซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เช›เซ‡ เช•เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเชฃ เชคเชฎเซ‡ mypy เชšเชฒเชพเชตเซ‹ เช›เซ‹, เชคเซเชฏเชพเชฐเซ‡ เชคเชฎเชพเชฐเซ‡ เชนเชœเชพเชฐเซ‹ เช†เชฏเชพเชคเซ€ เช…เชตเชฒเช‚เชฌเชจเชฅเซ€ เชธเช‚เชฌเช‚เชงเชฟเชค เช•เซ‡เชถเซเชก เชกเซ‡เชŸเชพ เชฒเซ‹เชก เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชฌเซ€เชœเซเช‚, เชคเซ‡ เช•เชพเชณเชœเซ€เชชเซ‚เชฐเซเชตเช•, เชจเชพเชจเชพ เชฎเชพเชณเช–เชพเช•เซ€เชฏ เชเช•เชฎเซ‹เชจเชพ เชธเซเชคเชฐเซ‡, เช•เชพเชฐเซเชฏเซ‹ เช…เชจเซ‡ เช…เชจเซเชฏ เชธเช‚เชธเซเชฅเชพเช“ เชตเชšเซเชšเซ‡เชจเซ€ เชจเชฟเชฐเซเชญเชฐเชคเชพเชจเซเช‚ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เช•เชฐเซ‡ เช›เซ‡. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซ‹ เช•เชพเชฐเซเชฏ foo เชซเช‚เช•เซเชถเชจเชจเซ‡ เชฌเซ‹เชฒเชพเชตเซ‡ เช›เซ‡ bar, เชชเช›เซ€ เชคเซเชฏเชพเช‚ เช…เชตเชฒเช‚เชฌเชจ เช›เซ‡ foo เชฅเซ€ bar. เชœเซเชฏเชพเชฐเซ‡ เชซเชพเช‡เชฒ เชฌเชฆเชฒเชพเชฏ เช›เซ‡, เชคเซเชฏเชพเชฐเซ‡ เชกเชฟเชฎเชจ เชชเซเชฐเชฅเชฎ, เชเช•เชฒเชคเชพเชฎเชพเช‚, เชฎเชพเชคเซเชฐ เชฌเชฆเชฒเชพเชฏเซ‡เชฒเซ€ เชซเชพเช‡เชฒ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเซ‡ เช›เซ‡. เชคเซ‡ เชชเช›เซ€ เชคเซ‡ เชซเชพเช‡เชฒเชฎเชพเช‚ เชฌเชพเชนเซเชฏ เชฐเซ€เชคเซ‡ เชฆเซ‡เช–เชพเชคเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชœเซเช เช›เซ‡, เชœเซ‡เชฎ เช•เซ‡ เชฌเชฆเชฒเชพเชฏเซ‡เชฒ เช•เชพเชฐเซเชฏ เชธเชนเซ€. เชกเชฟเชฎเชจ เช†เชฏเชพเชค เชตเชฟเชถเซ‡เชจเซ€ เชตเชฟเช—เชคเชตเชพเชฐ เชฎเชพเชนเชฟเชคเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชฎเชพเชคเซเชฐ เชคเซ‡ เชซเช‚เช•เซเชถเชจเชจเซ‡ เชฌเซ‡ เชตเชพเชฐ เชคเชชเชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ‡ เช›เซ‡ เชœเซ‡ เช–เชฐเซ‡เช–เชฐ เชธเช‚เชถเซ‹เชงเชฟเชค เช•เชพเชฐเซเชฏเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡. เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡, เช† เช…เชญเชฟเช—เชฎ เชธเชพเชฅเซ‡, เชคเชฎเชพเชฐเซ‡ เชฌเชนเซ เช“เช›เชพ เช•เชพเชฐเซเชฏเซ‹ เชคเชชเชพเชธเชตเชพ เชชเชกเชถเซ‡.

เช† เชฌเชงเซเช‚ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเซเช‚ เชธเชฐเชณ เชจเชนเซ‹เชคเซเช‚, เช•เชพเชฐเชฃ เช•เซ‡ เชฎเซ‚เชณ mypy เช…เชฎเชฒเซ€เช•เชฐเชฃ เชเช• เชธเชฎเชฏเซ‡ เชเช• เชซเชพเช‡เชฒ เชชเชฐ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชชเชฐ เช–เซ‚เชฌ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เชนเชคเซเช‚. เช…เชฎเชพเชฐเซ‡ เช˜เชฃเซ€ เชธเซ€เชฎเชพเชฐเซ‡เช–เชพ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเชตเซ‹ เชชเชกเซเชฏเซ‹ เชนเชคเซ‹, เชœเซ‡เชจเซ€ เช˜เชŸเชจเชพ เชฎเชพเชŸเซ‡ เช•เซ‹เชกเชฎเชพเช‚ เช•เช‚เชˆเช• เชฌเชฆเชฒเชพเชฏเซเช‚ เชนเซ‹เชฏ เชคเซ‡เชตเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชตเชพเชฐเช‚เชตเชพเชฐ เชคเชชเชพเชธ เช•เชฐเชตเซ€ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซ€. เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชœเซเชฏเชพเชฐเซ‡ เชตเชฐเซเช—เชจเซ‡ เชจเชตเซ‹ เช†เชงเชพเชฐ เชตเชฐเซเช— เชธเซ‹เช‚เชชเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เช†เชตเซเช‚ เชฅเชพเชฏ เช›เซ‡. เชเช•เชตเชพเชฐ เช…เชฎเซ‡ เชœเซ‡ เช‡เชšเซเช›เซ€เช เช›เซ€เช เชคเซ‡ เช•เชฐเซ€ เชฒเซ€เชงเชพ เชชเช›เซ€, เช…เชฎเซ‡ เชฎเซ‹เชŸเชพเชญเชพเช—เชจเชพ เชตเชงเชพเชฐเชพเชจเชพ เชšเซ‡เช•เชจเชพ เช…เชฎเชฒเชจเชพ เชธเชฎเชฏเชจเซ‡ เชฎเชพเชคเซเชฐ เชฅเซ‹เชกเซ€ เชธเซ‡เช•เช‚เชก เชธเซเชงเซ€ เช˜เชŸเชพเชกเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ. เช† เช…เชฎเชจเซ‡ เชฎเซ‹เชŸเซ€ เชœเซ€เชค เชœเซ‡เชตเซ€ เชฒเชพเช—เซ€.

เชคเซ‡เชจเชพเชฅเซ€ เชชเชฃ เชตเชงเซ เช‰เชคเซเชชเชพเชฆเช•เชคเชพ!

เชฎเซ‡เช‚ เช‰เชชเชฐ เชšเชฐเซเชšเชพ เช•เชฐเซ‡เชฒเซ€ เชฐเซ€เชฎเซ‹เชŸ เช•เซ‡เชถเซ€เช‚เช— เชธเชพเชฅเซ‡ เชฎเชณเซ€เชจเซ‡, mypy เชกเชฟเชฎเชจ เชฒเช—เชญเช— เชธเช‚เชชเซ‚เชฐเซเชฃ เชฐเซ€เชคเซ‡ เช‰เชฆเชญเชตเชคเซ€ เชธเชฎเชธเซเชฏเชพเช“เชจเซเช‚ เชจเชฟเชฐเชพเช•เชฐเชฃ เชฒเชพเชตเซ‡ เช›เซ‡ เชœเซเชฏเชพเชฐเซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐ เชตเชพเชฐเช‚เชตเชพเชฐ เชŸเชพเช‡เชช เชšเซ‡เช•เชฟเช‚เช— เชšเชฒเชพเชตเซ‡ เช›เซ‡, เชจเชพเชจเซ€ เชธเช‚เช–เซเชฏเชพเชฎเชพเช‚ เชซเชพเช‡เชฒเซ‹เชฎเชพเช‚ เชซเซ‡เชฐเชซเชพเชฐ เช•เชฐเซ‡ เช›เซ‡. เชœเซ‹ เช•เซ‡, เช“เช›เชพเชฎเชพเช‚ เช“เช›เชพ เชธเชพเชจเซเช•เซ‚เชณ เช‰เชชเชฏเซ‹เช—เชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚ เชธเชฟเชธเซเชŸเชฎเชจเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชนเชœเซ เชชเชฃ เชถเซเชฐเซ‡เชทเซเช เชฅเซ€ เชฆเซ‚เชฐ เชนเชคเซ€. mypy เชจเชพ เชธเซเชตเชšเซเช› เชธเซเชŸเชพเชฐเซเชŸเช…เชชเชฎเชพเช‚ 15 เชฎเชฟเชจเชฟเชŸเชฅเซ€ เชตเชงเซ เชธเชฎเชฏ เชฒเชพเช—เซ€ เชถเช•เซ‡ เช›เซ‡. เช…เชจเซ‡ เช† เช…เชฎเซ‡ เช–เซเชถ เชนเซ‹เชค เชคเซ‡เชจเชพ เช•เชฐเชคเชพเช‚ เช˜เชฃเซเช‚ เชตเชงเชพเชฐเซ‡ เชนเชคเซเช‚. เชฆเชฐ เช…เช เชตเชพเชกเชฟเชฏเซ‡ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟ เชตเชงเซ เช–เชฐเชพเชฌ เชฌเชจเชคเซ€ เช—เชˆ เช•เชพเชฐเชฃ เช•เซ‡ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชจเชตเชพ เช•เซ‹เชก เชฒเช–เชตเชพเชจเซเช‚ เช…เชจเซ‡ เชนเชพเชฒเชจเชพ เช•เซ‹เชกเชฎเชพเช‚ เชŸเซ€เช•เชพ เช‰เชฎเซ‡เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เชคเชพ เชนเชคเชพ. เช…เชฎเชพเชฐเชพ เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ เชนเชœเซ เชชเชฃ เชตเชงเซ เชชเซเชฐเชฆเชฐเซเชถเชจ เชฎเชพเชŸเซ‡ เชญเซ‚เช–เซเชฏเชพ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เช…เชฎเซ‡ เชคเซ‡เชฎเชจเซ‡ เช…เชกเชงเชพ เชฐเชธเซเชคเซ‡ เชฎเชณเซ€เชจเซ‡ เช–เซเชถ เชนเชคเชพ.

เช…เชฎเซ‡ mypy เชธเช‚เชฌเช‚เชงเชฟเชค เช…เช—เชพเช‰เชจเชพ เชตเชฟเชšเชพเชฐเซ‹เชฎเชพเช‚เชฅเซ€ เชเช• เชชเชฐ เชชเชพเช›เชพ เชซเชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. เชเชŸเชฒเซ‡ เช•เซ‡, เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ‡ เชธเซ€ เช•เซ‹เชกเชฎเชพเช‚ เช•เชจเซเชตเชฐเซเชŸ เช•เชฐเชตเชพ. Cython (เชเช• เชธเชฟเชธเซเชŸเชฎ เช•เซ‡ เชœเซ‡ เชคเชฎเชจเซ‡ Python เชฎเชพเช‚ เชฒเช–เซ‡เชฒเชพ เช•เซ‹เชกเชจเซ‡ C เช•เซ‹เชกเชฎเชพเช‚ เช…เชจเซเชตเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฎเช‚เชœเซ‚เชฐเซ€ เช†เชชเซ‡ เช›เซ‡) เชธเชพเชฅเซ‡ เชชเซเชฐเชฏเซ‹เช— เช•เชฐเชตเชพเชฅเซ€ เช…เชฎเชจเซ‡ เช•เซ‹เชˆ เชฆเซƒเชถเซเชฏเชฎเชพเชจ เช—เชคเชฟ เชฎเชณเซ€ เชจเชฅเซ€, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เช…เชฎเชพเชฐเชพ เชชเซ‹เชคเชพเชจเชพ เช•เชฎเซเชชเชพเชˆเชฒเชฐเชจเซ‡ เชฒเช–เชตเชพเชจเชพ เชตเชฟเชšเชพเชฐเชจเซ‡ เชชเซเชจเชฐเซเชœเซ€เชตเชฟเชค เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚. mypy เช•เซ‹เชกเชฌเซ‡เช (เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚ เชฒเช–เชพเชฏเซ‡เชฒ) เชชเชนเซ‡เชฒเชพเชฅเซ€ เชœ เชคเชฎเชพเชฎ เชœเชฐเซ‚เชฐเซ€ เชชเซเชฐเช•เชพเชฐเชจเซ€ เชŸเซ€เช•เชพเช“ เชงเชฐเชพเชตเซ‡ เช›เซ‡, เชคเซ‡เชฅเซ€ เช…เชฎเซ‡ เชตเชฟเชšเชพเชฐเซเชฏเซเช‚ เช•เซ‡ เชธเชฟเชธเซเชŸเชฎเชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช† เชŸเซ€เช•เชพเช“เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเชตเซ‹ เชฏเซ‹เช—เซเชฏ เชฐเชนเซ‡เชถเซ‡. เชฎเซ‡เช‚ เช† เชตเชฟเชšเชพเชฐเชจเซ‡ เชšเช•เชพเชธเชตเชพ เชฎเชพเชŸเซ‡ เชเชกเชชเชฅเซ€ เชชเซเชฐเซ‹เชŸเซ‹เชŸเชพเช‡เชช เชฌเชจเชพเชตเซเชฏเซ‹. เชคเซ‡ เชตเชฟเชตเชฟเชง เชฎเชพเช‡เช•เซเชฐเซ‹-เชฌเซ‡เชจเซเชšเชฎเชพเชฐเซเช•เซเชธ เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชจเชฎเชพเช‚ 10 เช—เชฃเซ‹ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชตเชงเชพเชฐเซ‹ เชฆเชฐเซเชถเชพเชตเซ‡ เช›เซ‡. เช…เชฎเชพเชฐเซ‹ เชตเชฟเชšเชพเชฐ เชธเซ€เชฅเซ‹เชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชจเซ‡ C เชฎเซ‹เชกเซเชฏเซเชฒเซ‹เชฎเชพเช‚ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชตเชพเชจเซ‹ เชนเชคเซ‹ เช…เชจเซ‡ เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจเชจเซ‡ เชฐเชจ-เชŸเชพเช‡เชฎ เชŸเชพเช‡เชช เชšเซ‡เช•เชฎเชพเช‚ เชซเซ‡เชฐเชตเชตเชพเชจเซ‹ เชนเชคเซ‹ (เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชŸเชพเช‡เชช เชเชจเซ‹เชŸเซ‡เชถเชจเชจเซ‡ เชฐเชจ-เชŸเชพเช‡เชฎ เชชเชฐ เช…เชตเช—เชฃเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช…เชจเซ‡ เชฎเชพเชคเซเชฐ เชŸเชพเช‡เชช เชšเซ‡เช•เชฟเช‚เช— เชธเชฟเชธเซเชŸเชฎเซเชธ เชฆเซเชตเชพเชฐเชพ เช‰เชชเชฏเซ‹เช—เชฎเชพเช‚ เชฒเซ‡เชตเชพเชฏ เช›เซ‡). เช…เชฎเซ‡ เชตเชพเชธเซเชคเชตเชฎเชพเช‚ เชชเชพเชฏเชฅเซ‹เชจเชฎเชพเช‚เชฅเซ€ mypy เช…เชฎเชฒเซ€เช•เชฐเชฃเชจเซ‡ เชเชตเซ€ เชญเชพเชทเชพเชฎเชพเช‚ เช…เชจเซเชตเชพเชฆเชฟเชค เช•เชฐเชตเชพเชจเซ€ เชฏเซ‹เชœเชจเชพ เชฌเชจเชพเชตเซ€ เช›เซ‡ เช•เซ‡ เชœเซ‡ เชธเซเชŸเซ‡เชŸเชฟเช•เชฒเซ€ เชŸเชพเช‡เชช เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชกเชฟเชเชพเช‡เชจ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เชนเชคเซ€, เชœเซ‡ เชชเชพเชฏเชฅเซ‹เชจ เชœเซ‡เชตเซ€ เชœ เชฆเซ‡เช–เชพเชถเซ‡ (เช…เชจเซ‡, เชฎเซ‹เชŸเชพเชญเชพเช—เซ‡, เช•เชพเชฎ เช•เชฐเชถเซ‡). (เช† เชชเซเชฐเช•เชพเชฐเชจเซ€ เช•เซเชฐเซ‹เชธ-เชฒเซ‡เช‚เช—เซเชตเซ‡เชœ เชฎเชพเชˆเช—เซเชฐเซ‡เชถเชจ เช mypy เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเซ€ เชชเชฐเช‚เชชเชฐเชพ เชฌเชจเซ€ เช—เชˆ เช›เซ‡. เชฎเซ‚เชณ mypy เช…เชฎเชฒเซ€เช•เชฐเชฃ เช…เชฒเซ‹เชฐเชฎเชพเช‚ เชฒเช–เชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเซเช‚ เชนเชคเซเช‚, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชœเชพเชตเชพ เช…เชจเซ‡ เชชเชพเชฏเชฅเซ‹เชจเชจเซเช‚ เชธเชฟเชจเซเชŸเซ‡เช•เซเชŸเชฟเช• เชนเชพเช‡เชฌเซเชฐเชฟเชก เชนเชคเซเช‚).

CPython เชเช•เซเชธเซเชŸเซ‡เช‚เชถเชจ API เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเชตเซเช‚ เช เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชฎเซ‡เชจเซ‡เชœเชฎเซ‡เชจเซเชŸ เช•เซเชทเชฎเชคเชพเช“เชจเซ‡ เชจ เช—เซเชฎเชพเชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชšเชพเชตเซ€ เชนเชคเซ€. เช…เชฎเชพเชฐเซ‡ เชตเชฐเซเชšเซเชฏเซเช…เชฒ เชฎเชถเซ€เชจ เช…เชฅเชตเชพ mypy เชจเซ‡ เชœเชฐเซ‚เชฐเซ€ เช•เซ‹เชˆเชชเชฃ เชฒเชพเช‡เชฌเซเชฐเซ‡เชฐเซ€เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€. เชตเชงเซเชฎเชพเช‚, เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชนเชœเซ เชชเชฃ เชธเชฎเช—เซเชฐ เชชเชพเชฏเชฅเซ‹เชจ เช‡เช•เซ‹เชธเชฟเชธเซเชŸเชฎ เช…เชจเซ‡ เชคเชฎเชพเชฎ เชธเชพเชงเชจเซ‹ (เชœเซ‡เชฎ เช•เซ‡ เชชเชพเชฏเชŸเซ‡เชธเซเชŸ)เชจเซ€ เชเช•เซเชธเซ‡เชธ เชนเชถเซ‡. เช†เชจเซ‹ เช…เชฐเซเชฅ เช เชฅเชฏเซ‹ เช•เซ‡ เช…เชฎเซ‡ เชตเชฟเช•เชพเชธ เชฆเชฐเชฎเชฟเชฏเชพเชจ เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชฐเชพเชฏเซ‡เชฒ เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เซ€ เชถเช•เซ€เช เช›เซ€เช, เชœเซ‡ เช…เชฎเชจเซ‡ เช•เซ‹เชก เช•เชฎเซเชชเชพเช‡เชฒ เชฅเชตเชพเชจเซ€ เชฐเชพเชน เชœเซ‹เชตเชพเชจเซ‡ เชฌเชฆเชฒเซ‡ เช•เซ‹เชก เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช…เชจเซ‡ เชคเซ‡เชจเซเช‚ เชชเชฐเซ€เช•เซเชทเชฃ เช•เชฐเชตเชพเชจเซ€ เช–เซ‚เชฌ เชœ เชเชกเชชเซ€ เชชเซ‡เชŸเชฐเซเชจ เชธเชพเชฅเซ‡ เช•เชพเชฎ เช•เชฐเชตเชพเชจเซเช‚ เชšเชพเชฒเซ เชฐเชพเช–เชตเชพ เชฆเซ‡ เช›เซ‡. เชเชตเซเช‚ เชฒเชพเช—เชคเซเช‚ เชนเชคเซเช‚ เช•เซ‡ เช…เชฎเซ‡ เชฌเซ‡ เช–เซเชฐเชถเซ€เช“ เชชเชฐ เชฌเซ‡เชธเซ€เชจเซ‡ เชเช• เชธเชฐเชธ เช•เชพเชฎ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ€เช, เชคเซ‡เชฅเซ€ เชฌเซ‹เชฒเชตเชพ เชฎเชพเชŸเซ‡, เช…เชจเซ‡ เช…เชฎเชจเซ‡ เชคเซ‡ เช—เชฎเซเชฏเซเช‚.

เช•เชฎเซเชชเชพเช‡เชฒเชฐ, เชœเซ‡เชจเซ‡ เช†เชชเชฃเซ‡ mypyc เช•เชนเซ€เช เช›เซ€เช (เช•เชพเชฐเชฃ เช•เซ‡ เชคเซ‡ เชชเซเชฐเช•เชพเชฐเซ‹เชจเชพ เชตเชฟเชถเซเชฒเซ‡เชทเชฃ เชฎเชพเชŸเซ‡ เชซเซเชฐเชจเซเชŸ-เชเชจเซเชก เชคเชฐเซ€เช•เซ‡ mypy เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ‡ เช›เซ‡), เชคเซ‡ เช–เซ‚เชฌ เชœ เชธเชซเชณ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชนเซ‹เชตเชพเชจเซเช‚ เชฌเชนเชพเชฐ เช†เชตเซเชฏเซเช‚ เช›เซ‡. เชเช•เช‚เชฆเชฐเซ‡, เช…เชฎเซ‡ เช•เซ‡เชถเซ€เช‚เช— เชตเชฟเชจเชพ เชตเชพเชฐเช‚เชตเชพเชฐ mypy เชฐเชจ เชฎเชพเชŸเซ‡ เช†เชถเชฐเซ‡ 4x เชเชกเชช เชนเชพเช‚เชธเชฒ เช•เชฐเซ€ เช›เซ‡. mypyc เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชจเชพ เชฎเซเช–เซเชฏ เชตเชฟเช•เชพเชธเชฎเชพเช‚ เชฎเชพเช‡เช•เชฒ เชธเซเชฒเชฟเชตเชพเชจ, เช‡เชตเชพเชจ เชฒเซ‡เชตเช•เซ€เชตเชธเซเช•เซ€, เชนเซเชฏเซ เชนเซ‡เชจ เช…เชจเซ‡ เชฎเชพเชฐเซ€ เชเช• เชจเชพเชจเซ€ เชŸเซ€เชฎ เชฒเช—เชญเช— 4 เช•เซ‡เชฒเซ‡เชจเซเชกเชฐ เชฎเชนเชฟเชจเชพเชจเซ‹ เชธเชฎเชฏ เชฒเซ€เชงเซ‹. เช•เชพเชฎเชจเซ€ เช† เชฐเช•เชฎ mypy เชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเชพ เชฎเชพเชŸเซ‡ เชœเชฐเซ‚เชฐเซ€ เชนเชคเซ€ เชคเซ‡เชจเชพ เช•เชฐเชคเชพ เช˜เชฃเซ€ เช“เช›เซ€ เชนเชคเซ€, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, C++ เช…เชฅเชตเชพ Go เชฎเชพเช‚. เช…เชจเซ‡ เช…เชฎเชพเชฐเซ‡ เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเชฎเชพเช‚ เช…เชจเซเชฏ เชญเชพเชทเชพเชฎเชพเช‚ เชชเซเชจเชƒเชฒเซ‡เช–เชจ เช•เชฐเชคเซ€ เชตเช–เชคเซ‡ เชœเซ‡ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพ เชชเชกเซเชฏเชพ เชนเซ‹เชค เชคเซ‡เชจเชพ เช•เชฐเชคเชพ เช˜เชฃเชพ เช“เช›เชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพ เชชเชกเซเชฏเชพ เชนเชคเชพ. เช…เชฎเซ‡ เชเชตเซ€ เชชเชฃ เช†เชถเชพ เชฐเชพเช–เซ€เช เช›เซ€เช เช•เซ‡ เช…เชฎเซ‡ mypyc เชจเซ‡ เชเชตเชพ เชธเซเชคเชฐ เชชเชฐ เชฒเชพเชตเซ€ เชถเช•เซ€เช เช•เซ‡ เช…เชจเซเชฏ เชกเซเชฐเซ‰เชชเชฌเซ‰เช•เซเชธ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎเชฐเซ‹ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เชคเซ‡เชฎเชจเชพ เช•เซ‹เชกเชจเซ‡ เช•เชฎเซเชชเชพเช‡เชฒ เช•เชฐเชตเชพ เช…เชจเซ‡ เชคเซ‡เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซ€ เชถเช•เซ‡.

เชชเซเชฐเชฆเชฐเซเชถเชจเชจเชพ เช† เชธเซเชคเชฐเชจเซ‡ เชนเชพเช‚เชธเชฒ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเชพเชฐเซ‡ เช•เซ‡เชŸเชฒเชพเช• เชฐเชธเชชเซเชฐเชฆ เชเชจเซเชœเชฟเชจเชฟเชฏเชฐเชฟเช‚เช— เช‰เช•เซ‡เชฒเซ‹ เชฒเชพเช—เซ เช•เชฐเชตเชพ เชชเชกเซเชฏเชพ. เช†เชฎ, เช•เชฎเซเชชเชพเชˆเชฒเชฐ เชเชกเชชเซ€, เชจเซ€เชšเชพ-เชธเซเชคเชฐเชจเชพ C เชฌเชพเช‚เชงเช•เชพเชฎเซ‹เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช˜เชฃเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเซ€ เชถเช•เซ‡ เช›เซ‡.เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡, เชธเช‚เช•เชฒเชฟเชค เชซเช‚เช•เซเชถเชจ เช•เซ‰เชฒเชจเซ‡ C เชซเช‚เช•เซเชถเชจ เช•เซ‰เชฒเชฎเชพเช‚ เช…เชจเซเชตเชพเชฆเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡. เช…เชจเซ‡ เช†เชตเชพ เช•เซ‰เชฒ เชเช• เช…เชฐเซเชฅเช˜เชŸเชจ เช•เชพเชฐเซเชฏ เช•เซ‰เชฒ เช•เชฐเชคเชพเช‚ เชตเชงเซ เชเชกเชชเซ€ เช›เซ‡. เช•เซ‡เชŸเชฒเชพเช• เช‘เชชเชฐเซ‡เชถเชจเซเชธ, เชœเซ‡เชฎ เช•เซ‡ เชกเชฟเช•เซเชถเชจเชฐเซ€ เชฒเซเช•เช…เชช, เชนเชœเซ เชชเชฃ CPython เชจเชพ เชจเชฟเชฏเชฎเชฟเชค C-API เช•เซ‰เชฒเซเชธเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชพเชฎเซ‡เชฒ เช›เซ‡, เชœเซ‡ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เชคเซเชฏเชพเชฐเซ‡ เชฎเชพเชคเซเชฐ เชจเชœเซ€เชตเซ€ เชฐเซ€เชคเซ‡ เชเชกเชชเซ€ เชนเชคเชพ. เช…เชฎเซ‡ เช…เชฐเซเชฅเช˜เชŸเชจ เชฆเซเชตเชพเชฐเชพ เชฌเชจเชพเชตเซ‡เชฒ เชธเชฟเชธเซเชŸเชฎ เชชเชฐเชจเชพ เชตเชงเชพเชฐเชพเชจเชพ เชญเชพเชฐเชจเซ‡ เชฆเซ‚เชฐ เช•เชฐเชตเชพเชฎเชพเช‚ เชธเช•เซเชทเชฎ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เช†เชจเชพเชฅเซ€ เชชเซเชฐเชญเชพเชตเชจเซ€ เชฆเซเชฐเชทเซเชŸเชฟเช เชฎเชพเชคเซเชฐ เชเช• เชจเชพเชจเซ‹ เชซเชพเชฏเชฆเซ‹ เชฅเชฏเซ‹.

เชธเซŒเชฅเซ€ เชธเชพเชฎเชพเชจเซเชฏ "เชงเซ€เชฎเซ€" เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‡ เช“เชณเช–เชตเชพ เชฎเชพเชŸเซ‡, เช…เชฎเซ‡ เช•เซ‹เชก เชชเซเชฐเซ‹เชซเชพเช‡เชฒเชฟเช‚เช— เช•เชฐเซเชฏเซเช‚. เช† เชกเซ‡เชŸเชพเชฅเซ€ เชธเชœเซเชœ, เช…เชฎเซ‡ เช•เชพเช‚ เชคเซ‹ mypyc เชจเซ‡ เชเชŸเช•เซ‹ เช•เชฐเชตเชพเชจเซ‹ เชชเซเชฐเชฏเชพเชธ เช•เชฐเซเชฏเซ‹ เชœเซ‡เชฅเซ€ เชคเซ‡ เช†เชตเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€ เชฎเชพเชŸเซ‡ เชเชกเชชเซ€ C เช•เซ‹เชก เชœเชจเชฐเซ‡เชŸ เช•เชฐเซ‡, เช…เชฅเชตเชพ เชเชกเชชเซ€ เช•เชพเชฎเช—เซ€เชฐเซ€เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เซ€ เชถเช•เซ‡ (เช…เชจเซ‡ เช•เซ‡เชŸเชฒเซ€เช•เชตเชพเชฐ เช…เชฎเชพเชฐเซ€ เชชเชพเชธเซ‡ เชคเซ‡ เช…เชฅเชตเชพ เช…เชจเซเชฏ เชธเชฎเชธเซเชฏเชพ เชฎเชพเชŸเซ‡ เชชเซ‚เชฐเชคเซ‹ เชธเชฐเชณ เช‰เช•เซ‡เชฒ เชจเชนเซ‹เชคเซ‹) . เช•เชฎเซเชชเชพเช‡เชฒเชฐ เช†เชชเชฎเซ‡เชณเซ‡ เชธเชฎเชพเชจ เชฐเซ‚เชชเชพเช‚เชคเชฐเชฃ เช•เชฐเชตเชพ เช•เชฐเชคเชพเช‚ เชชเชพเชฏเชฅเซ‹เชจ เช•เซ‹เชกเชจเซ‡ เชซเชฐเซ€เชฅเซ€ เชฒเช–เชตเซเช‚ เช เชธเชฎเชธเซเชฏเชพเชจเซ‹ เชธเชฐเชณ เช‰เช•เซ‡เชฒ เชนเชคเซ‹. เชฒเชพเช‚เชฌเชพ เช—เชพเชณเซ‡, เช…เชฎเซ‡ เช†เชฎเชพเช‚เชจเชพ เช˜เชฃเชพ เชชเชฐเชฟเชตเชฐเซเชคเชจเซ‹เชจเซ‡ เชธเซเชตเชšเชพเชฒเชฟเชค เช•เชฐเชตเชพ เชฎเชพเช—เชคเชพ เชนเชคเชพ, เชชเชฐเช‚เชคเซ เชคเซ‡ เชธเชฎเชฏเซ‡ เช…เชฎเซ‡ เชจเซเชฏเซ‚เชจเชคเชฎ เชชเซเชฐเชฏเชคเซเชจเซ‹ เชธเชพเชฅเซ‡ mypy เชจเซ‡ เชเชกเชชเซ€ เชฌเชจเชพเชตเชตเชพ เชชเชฐ เชงเซเชฏเชพเชจ เช•เซ‡เชจเซเชฆเซเชฐเชฟเชค เช•เชฐเซเชฏเซเช‚ เชนเชคเซเช‚. เช…เชจเซ‡ เช† เชงเซเชฏเซ‡เชฏ เชคเชฐเชซ เช†เช—เชณ เชตเชงเชคเชพ, เช…เชฎเซ‡ เช˜เชฃเชพ เช–เซ‚เชฃเชพ เช•เชพเชชเซ€ เชจเชพเช–เซเชฏเชพ.

เชšเชพเชฒเซ เชฐเชนเซ€ เชถเช•เชพเชฏโ€ฆ

เชชเซเชฐเชฟเชฏ เชตเชพเชšเช•เซ‹! เชœเซเชฏเชพเชฐเซ‡ เชคเชฎเซ‡ เชคเซ‡เชจเชพ เช…เชธเซเชคเชฟเชคเซเชต เชตเชฟเชถเซ‡ เชถเซ€เช–เซเชฏเชพ เชคเซเชฏเชพเชฐเซ‡ mypy เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸ เชตเชฟเชถเซ‡ เชคเชฎเชพเชฐเซ€ เชถเซเช‚ เช›เชพเชช เชนเชคเซ€?

Python เช•เซ‹เชกเชจเซ€ 4 เชฎเชฟเชฒเชฟเชฏเชจ เชฒเซ€เชŸเซ€เช“ เชŸเชพเช‡เชชเชšเซ‡เช• เช•เชฐเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช—. เชญเชพเช— 2
Python เช•เซ‹เชกเชจเซ€ 4 เชฎเชฟเชฒเชฟเชฏเชจ เชฒเซ€เชŸเซ€เช“ เชŸเชพเช‡เชชเชšเซ‡เช• เช•เชฐเชตเชพเชจเซ‹ เชฎเชพเชฐเซเช—. เชญเชพเช— 2

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹