เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3

เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบ™เบตเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบ‚เบญเบ‡เบเบฒเบ™เปเบ›เป€เบญเบเบฐเบชเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆ Dropbox เป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ” Python.

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3

โ†’ เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ: เบเปˆเบญเบ™ ะธ เบ„เบฑเป‰เบ‡เบ—เบตเบชเบญเบ‡

เบฎเบญเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบžเบดเบกเปเบฅเป‰เบง

เบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡ (เปเบฅเบฐเบ„เบงเบฒเบกเบเบฑเบ‡เบงเบปเบ™เบ—เบปเปˆเบงเป„เบ›เบ—เบตเบชเบญเบ‡เปƒเบ™เบšเบฑเบ™เบ”เบฒเบœเบนเป‰เบ—เบตเปˆเบชเปเบฒเบซเบผเบงเบ”เบžเบฒเบเปƒเบ™) เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเบงเบกเป€เบญเบปเบฒเป‚เบ”เบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เปƒเบ™ Dropbox. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบเบงเบดเบ—เบตเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบˆเบฒเบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบ•เบปเบงเบ‚เบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบญเบ‡ codebase เบ—เบตเปˆเบžเบดเบกเบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เป€เบžเบทเปˆเบญเบชเบธเบกเปƒเบชเปˆเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบ‚เบญเบ‡เบ—เบตเบกเบ‡เบฒเบ™ mypy เปƒเบ™เบเบฒเบ™ inference เบ›เบฐเป€เบžเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆเปเบฅเบฐเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบง. เปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบกเบฑเบ™เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบกเบตเบเบปเบ™เบฅเบฐเบเบธเบ”เบเบฒเบ™เบŠเบฐเบ™เบฐเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบฅเบธเบเบฒเบ™เป€เบ•เบตเบšเป‚เบ•เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเบ‚เบญเบ‡เบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เป‚เบ”เบเบเบฒเบ™เบฅเบงเบกเป€เบญเบปเบฒเบซเบผเบฒเบเบงเบดเบ—เบตเบเบฒเบ™.

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

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

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3
เบˆเปเบฒเบ™เบงเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบซเบเปเป‰เบกเบฒเบˆเบฒเบ: เป€เบŠเบตเบšเป€เบงเบต

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3
เบˆเปเบฒเบ™เบงเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบซเบเปเป‰เบกเบฒเบˆเบฒเบ: เบฅเบนเบเบ„เป‰เบฒ

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3
เบˆเปเบฒเบ™เบงเบ™เป€เบชเบฑเป‰เบ™เบ—เบฑเบ‡เปเบปเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบซเบเปเป‰เปœเป‰เบฒ

เบ™เบตเป‰เปเบกเปˆเบ™เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบˆเปเบฒเบ™เบงเบ™เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปƒเบ™ Dropbox:

เบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบ‚เบญเบ‡เบ„เปเบฒเบšเบฑเบ™เบเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบ„เปˆเบญเบเป†เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เบ‚เบญเบ‡เบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ. เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ linter เบ—เบตเปˆเปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปƒเบชเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบšเบฒเบ‡เบ„เปเบฒเบšเบฑเบ™เบเบฒเบเปเบฅเป‰เบง. เบ•เบญเบ™เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ›เบฐเป€เบžเบ”เปƒเบ™เป„เบŸเบฅเปŒ Python เปƒเปเปˆ เปเบฅเบฐเปƒเบ™เป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบขเบนเปˆเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”.

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

เบ„เบงเบฒเบกเบ™เบดเบเบปเบกเบ‚เบญเบ‡ mypy. เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบ™เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบš mypy เปƒเบ™เป€เบซเบ”เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†เปเบฅเบฐเบชเบปเบ™เบ—เบฐเบ™เบฒเบเบฑเบšเบ—เบตเบกเบ‡เบฒเบ™เป€เบžเบทเปˆเบญเบŠเปˆเบงเบเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ›เบฐเป€เบžเบ”.

เปเบšเบšเบชเบณเบซเบผเบงเบ”. เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบชเปเบฒเบซเบผเบงเบ”เบœเบนเป‰เปƒเบŠเป‰เปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆ. เบžเบงเบเป€เบฎเบปเบฒเบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป„เบ›เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป„เบเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰ (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบชเป‰เบฒเบ‡เบžเบฒเบชเบฒเปƒเบซเบกเปˆเป€เบžเบทเปˆเบญเป€เบฅเบฑเปˆเบ‡ mypy!).

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ mypy เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป‚เบ”เบเปƒเบŠเป‰ daemon เปเบฅเบฐ mypyc. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบšเปเปˆเบชเบฐเบ”เบงเบเบ—เบตเปˆเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบšเบฑเบ™เบเบฒเบ, เปเบฅเบฐเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเบฐเบซเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ.

เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบเบฑเบšเบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเป‰เบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเป€เบžเบทเปˆเบญเบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™ mypy เปƒเบ™เบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเปƒเบ™ Dropbox. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบต PyCharm, Vim เปเบฅเบฐ VS Code. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบเบฅเบฐเบซเบฑเบ”เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบ เปเบฅเบฐเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ—เบปเปˆเบงเป„เบ›เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบญเบฐเบ—เบดเบšเบฒเบเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง.

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบปเบ‡เบ—เบตเปˆ. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เป€เบžเบทเปˆเบญ infer เบฅเบฒเบโ€‹เป€เบŠเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบทโ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐโ€‹เบชเบฐโ€‹เบ–เบดโ€‹เบ•เบดโ€‹. เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ, เปเบ•เปˆเบกเบฑเบ™เบŠเปˆเบงเบเบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบกเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ›เบฐเป€เบžเบ”เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบ.

เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก. เบซเบผเบฒเบเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบŠเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เบกเบท SQLAlchemy. เบกเบฑเบ™เปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเบ‚เบญเบ‡ Python เบ—เบตเปˆ PEP 484 เบ›เบฐเป€เบžเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡. เบžเบงเบเป€เบฎเบปเบฒ, เบญเบตเบ‡เบ•เบฒเบก PEP 561, เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒ stub เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบ‚เบฝเบ™ plugin เบชเปเบฒเบฅเบฑเบš mypy (เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”), เป€เบŠเบดเปˆเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ SQLAlchemy.

เบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบžเบปเบš

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆ 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบžเบดเบกเบ™เบฑเป‰เบ™เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบเบชเบฐเป€เปเบตเป„เบ›เบชเบณเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เปƒเบ™โ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ™เบตเป‰โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบžเบปเบšโ€‹เบเบฑเบšโ€‹เบ‚เบธเบกโ€‹เบซเบผเบฒเบโ€‹เปเบฅเบฐโ€‹เป„เบ”เป‰โ€‹เป€เบฎเบฑเบ”โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบซเบผเบฒเบโ€‹เบ„เบฑเป‰เบ‡โ€‹. เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบžเบปเบš. เบžเบงเบเป€เบฎเบปเบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเบเบฒเบ™เบšเบญเบเป€เบฅเบปเปˆเบฒเบเปˆเบฝเบงเบเบฑเบšเบžเบงเบเบกเบฑเบ™เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ„เบปเบ™เบญเบทเปˆเบ™เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™.

เบšเปเปˆเบกเบตเป„เบŸเบฅเปŒ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป‚เบ”เบเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบžเบฝเบ‡เปเบ•เปˆเบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบเบ‚เบญเบ‡เป„เบŸเบฅเปŒ. เบชเบดเปˆเบ‡เปƒเบ”เปเบ”เปˆเบ—เบตเปˆเบšเปเปˆเบฅเบงเบกเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบเบงเบ”เบชเบญเบš. เป„เบŸเบฅเปŒเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบฅเบฒเบเบเบฒเบ™เบชเบฐเปเบเบ™เป€เบกเบทเปˆเบญเบ„เปเบฒเบšเบฑเบ™เบเบฒเบเบ—เปเบฒเบญเบดเบ”เบ›เบฒเบเบปเบ”เบขเบนเปˆเปƒเบ™เบžเบงเบเบกเบฑเบ™. เบ–เป‰เบฒเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ–เบทเบเบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบˆเบฒเบเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบเบฒเบ™เบเบงเบ”เบชเบญเบš, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ„เบธเบ™เบ„เปˆเบฒเป€เบŠเบฑเปˆเบ™: Any, เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบ—เบปเบ”เบชเบญเบšเป€เบฅเบตเบ. เบญเบฑเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบžเบดเบกเบขเปˆเบฒเบ‡เปƒเบซเบเปˆเบซเบผเบงเบ‡, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปƒเบ™เป„เบฅเบเบฐเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบตเบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆเบกเบฒเป€เบ–เบดเบ‡เบ•เบญเบ™เบ™เบฑเป‰เบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบžเบตเปˆเบกเป„เบŸเบฅเปŒเปƒเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เป„เบ”เป‰เป€เบ›เบตเบ”เป€เบœเบตเบเบšเบฑเบ™เบซเบฒเปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡ codebase. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡เบ—เบตเปˆเบชเบธเบ”, เป€เบกเบทเปˆเบญเบชเบญเบ‡เป€เบ‚เบ”เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™, เปƒเบ™เบ™เบฑเป‰เบ™, เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เป„เบ”เป‰เบ–เบทเบเบเบงเบ”เบชเบญเบšเปเบฅเป‰เบง, เบกเบฑเบ™เป„เบ”เป‰เบซเบฑเบ™เบญเบญเบเบงเปˆเบฒเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™. เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เบซเบผเบฒเบเบ„เปเบฒเบšเบฑเบ™เบเบฒเบ. เบŠเบญเบเบซเบฒเบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบ™เบˆเบฐเป„เบ”เป‰เป€เบžเบตเปˆเบกเป‚เบกเบ”เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบซเบผเบฑเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ mypy เป„เบงเบเบงเปˆเบฒเบ™เบตเป‰. เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบซเบผเบฒเบเบ‚เบถเป‰เบ™.

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

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

เบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบฎเบญเบšเบงเบฝเบ™. เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเบฎเบญเบšเบงเบฝเบ™ ("เบเบฒเบ™เบ•เบดเบ”เบžเบฑเบ™เบเบฑเบ™"), เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบเบฒเบเบ—เบตเปˆเบˆเบฐเป€เบฅเบฑเปˆเบ‡ mypy. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป„เบ”เป‰เป€เบฎเบฑเบ”เบงเบฝเบเบซเบ™เบฑเบเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰ mypy เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบธเบเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡ idioms เบ—เบตเปˆเป€เบเบตเบ”เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ cyclic เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เป„เบ”เป‰เบชเปเบฒเป€เบฅเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบญเบญเบเปเบšเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡ mypy เบชเปˆเบงเบ™เปƒเบซเบเปˆเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป€เบ›เบฑเบ™เบงเบปเบ‡. เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบเบธเบเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™, เบเบฑเบšเบ„เบทเบ™เป„เบ›เบšเปˆเบญเบ™เบˆเบฒเบ Alore, เบžเบฒเบชเบฒเบเบฒเบ™เบชเบถเบเบชเบฒเบ—เบตเปˆเป‚เบ„เบ‡เบเบฒเบ™ mypy เป„เบ”เป‰เบชเบธเบกเปƒเบชเปˆเปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™. syntax Alore เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เปเบฒเป€เบ‚เบปเป‰เบฒ cyclic. mypy เบ—เบฑเบ™เบชเบฐ เป„เป เป„เบ”เป‰เบชเบทเบšเบ—เบญเบ”เบ‚เปเป‰ เบˆเบณ เบเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ•เบปเป‰เบ™เป†, เบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบผเบฒเบ” (เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆ เป€เปเบฒเบฐ เบชเบปเบกเบ—เบตเปˆเบชเบธเบ” เบชเบณ เบฅเบฑเบš Alore). Python เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบฎเปˆเบงเบกโ€‹เบเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบงเบปเบ‡โ€‹เบกเบปเบ™โ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบซเบเบธเป‰เบ‡โ€‹เบเบฒเบโ€‹, เป‚เบ”เบโ€‹เบชเปˆเบงเบ™โ€‹เปƒเบซเบเปˆโ€‹เปเบกเปˆเบ™โ€‹เป€เบ™เบทเปˆเบญเบ‡โ€‹เบˆเบฒเบโ€‹เบงเปˆเบฒโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบญเบญเบโ€‹เปเบกเปˆเบ™โ€‹เบšเปเปˆโ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบญเบšเบซเบกเบฒเบเบญเบฒเบ”เบˆเบฐเบเปเบฒเบ™เบปเบ”เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ™เบฒเบกเปเบเบ‡. Mypy เบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบชเบดเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰เบชเบฐเป€เปเบตเป„เบ› เบˆเบปเบ™เบเบงเปˆเบฒเบเบฒเบ™เบ™เบณเป€เบ‚เบปเป‰เบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบˆเบฐเบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™. เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™ Alore. เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบšเปเปˆเบ”เบตเบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เปƒเบ™เป„เบฅเบเบฐเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ„เบงเบฒเบกเปเบ›เบเปƒเบˆเบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆเบเบฑเบšเบ™เบฑเบเบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบซเบผเบฒเบเบ›เบตเบ•เปเปˆเบกเบฒ.

เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš: เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆ 5 เบฅเป‰เบฒเบ™เป€เบชเบฑเป‰เบ™เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เปƒเบซเบกเปˆ

เป‚เบ„เบ‡เบเบฒเบ™ mypy เป„เบ”เป‰เบกเบฒเป€เบ›เบฑเบ™เบงเบดเบ—เบตเบ—เบฒเบ‡เบเบฒเบง - เบˆเบฒเบเบ•เบปเบงเปเบšเบšเบ•เบปเป‰เบ™เป„เบ›เบชเบนเปˆเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบก 4 เบฅเป‰เบฒเบ™เบชเบฒเบเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบœเบฐเบฅเบดเบ”. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆ mypy เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เบ›เบฐเป€เบžเบ” Python เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบกเบทเป‰เบ™เบตเป‰, เบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ”เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” Python. เบกเบฑเบ™เบกเบตเบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เบกเบฑเบ™เบกเบตเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบŠเปˆเบงเบเบชเปเบฒเบฅเบฑเบš IDEs เปเบฅเบฐเบšเบฑเบ™เบ™เบฒเบ—เบดเบเบฒเบ™, เบกเบฑเบ™เบกเบตเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบซเบผเบฒเบเบ›เบฐเป€เบžเบ”, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบ‚เปเป‰เบ”เบตเปเบฅเบฐเบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

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

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

เบ—เปˆเบฒเบ™เบœเบนเป‰เบญเปˆเบฒเบ™เบ—เบตเปˆเบฎเบฑเบเปเบžเบ‡! เบ—เปˆเบฒเบ™เปƒเบŠเป‰เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ›เบฐเป€เบžเบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Python เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบšเป?

เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบชเบนเปˆเบเบฒเบ™เบžเบดเบกเบฅเบฐเบซเบฑเบ” 4 เบฅเป‰เบฒเบ™เปเบ–เบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ” Python. เบžเบฒเบเบ—เบต 3

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

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