ืื ื ืืฆืืืื ืืชืฉืืืช ืืืื ืืช ืืืืง ืืฉืืืฉื ืฉื ืชืจืืื ืืืืืจ ืขื ืื ืชืื ืฉืขืืจื Dropbox ืืขืช ืืืืขืช ืืขืจืืช ืืืืงืช ืกืืืื ืขืืืจ ืงืื Python.
โ ืืืงืื ืงืืืืื:
ืืืืข ื-4 ืืืืืื ืฉืืจืืช ืฉื ืงืื ืืืงืื
ืืชืืจ ืืจืืื ื ืืกืฃ (ืืืืฉืฉ ืืฉื ื ืืฉืืืืืชื ืืงืจื ืื ืฉืืืื ืืคื ืืืืื) ืืื ืืืืืช ืืืืช ืืงืื ืืืืืกื ืขื ืืื ืืืืงืืช ืกืื ืืืจืืคืืืงืก. ื ืืกืื ื ืืกืคืจ ืืืฉืืช ืืคืชืจืื ืืขืื ืื, ืืืืืื ืืืขืืช ืฉื ืืืื ืืกืืก ืืงืื ืืืืงืื ืืืื ืืืืงืื ืืืืืฆืื ืฉื ืฆืืืช mypy ืืืกืงืช ืกืืืื ืืืืืืืืช ืกืืืืช ืืืื ืืืช. ืืกืืคื ืฉื ืืืจ, ื ืจืื ืืื ืฉืืื ืืกืืจืืืื ืื ืฆืืช ืคืฉืืื, ืืื ืืฆืืื ื ืืืฉืื ืฆืืืื ืืืืจื ืื ืคื ืืงืื ืืืืขืจ ืขื ืืื ืฉืืืื ืืืฉืืช ืจืืืช.
ืืชืืฆืื ืืื, ืืืืืจ Python ืืืืื ืืืืชืจ ืฉืื ื (ืขื ืงืื ืืืืจื) ืืฉ ืืืขื 4 ืืืืืื ืฉืืจืืช ืฉื ืงืื ืืืขืจ. ืืขืืืื ืขื ืืงืืืช ืงืื ืกืืืืช ืืกืชืืืื ืชืื ืืฉืืืฉ ืฉื ืื. Mypy ืชืืื ืืขืช ืืกืืืื ืฉืื ืื ืฉื ืืืืืช ืืืกืื ืงืื ืืืงืืื ืขื ืืขืงื ืืืจ ืืชืงืืืืช ืืืงืืื. ืืคืจื, ืื ื ืืืืืื ืืืคืืง ืืืืืช ืขื ืงืื ืขื ืื ืืืืจืืช ืืกืืืื, ืืืื, ืืืฉื, ืฉืืืืฉ ืืคืืจืฉ ืืกืื Any
ืืืขืจืืช ืฉืื ื ืืชื ืืืืช, ืื ืขื ืืืจืื ืืื ืืืืื โโืกืคืจืืืช ืฉื ืฆื ืฉืืืฉื ืฉืืื ืืื ืืขืจืืช ืกืื. ืืืืง ืืคืจืืืงื ืืฉืืคืืจ ืืืืืง ืฉื ืืืืงืช ืกืืืื ืืืจืืคืืืงืก, ืชืจืื ื ืืฉืืคืืจ ืืืืจืืช ืืกืื (ืื ืฉื ืงืจื ืงืืฆื stub) ืขืืืจ ืืกืคืจ ืกืคืจืืืช ืงืื ืคืชืื ืคืืคืืืจืืืช ืืืืืจ Python ืืจืืื.
ืืืืขื ื (ืืชืงื ื ื ื-PEPs ืขืืงืืื) ืชืืื ืืช ืืืฉืืช ืฉื ืืขืจืืช ืืกืื ืืืืคืฉืจืืช ืกืืืื ืืืืืงืื ืืืชืจ ืขืืืจ ืืื ืืคืืกื Python ืกืคืฆืืคืืื. ืืืืื ืืืืืช ืืื ืืื TypeDict
, ืืืกืคืง ืกืืืื ืืืืืื ืื ืืืืื JSON ืฉืืฉ ืืื ืงืืืฆื ืงืืืขื ืฉื ืืคืชืืืช ืืืจืืืช, ืฉืืื ืืื ืืื ืขืจื ืืกืืื. ื ืืฉืื ืืืจืืื ืืช ืืขืจืืช ืืกืืืื. ืืฆืขื ืืื ืฉืื ื ืืืื ืืื ืื ืจืื ืฉืืคืืจ ืืชืืืื ืืืืืืืช ืืืกืคืจืืืช ืฉื Python.
ืืกืคืจ ืฉืืจืืช ืฉื ืงืื ืืืขืจ: ืฉืจืช
ืืกืคืจ ืฉืืจืืช ืฉื ืงืื ืืืขืจ: ืืงืื
ืืืกืคืจ ืืืืื ืฉื ืฉืืจืืช ืฉื ืงืื ืืืขืจ
ืื ื ืกืงืืจื ืืืืืช ืฉื ืืืืคืืื ืื ืืขืืงืจืืื ืฉื ืืืืจืื ืฉืขืฉืื ื ืืื ืืืืืื ืืช ืืืืช ืืงืื ืืืืขืจ ืืืจืืคืืืงืก:
ืืงืคืื ืขื ืืขืจืืช. ืืืืื ื ืืืืจืื ืืช ืืืจืืฉืืช ืืงืคืื ืืช ืฉื ืืขืจืช ืงืื ืืืฉ. ืืชืืื ื ืขื ืืืคืื ืืืืืจ ืฉืืฆืืขื ืืืืกืืฃ ืืขืจืืช ืืงืืฆืื ืฉืืืจ ืืื ืืื ืืื ืืขืจืืช. ืืขืช ืื ื ืืืจืฉืื ืืขืจืืช ืืงืืื ืืงืืฆื Python ืืืฉืื ืืืจืื ืืงืืฆืื ืืงืืืืื.
ืืงืืืช ืืืืืช. ืื ื ืฉืืืืื ืืฆืืืชืื ืืืืืช ืฉืืืขืืื ืขื ืจืืช ืืืงืืื ืืงืื ืฉืืื ืื ืืชื ืื ืขืฆืืช ืืืื ืื ืฆืจืื ืืืขืืจ ืงืืื.
ืคืืคืืืจืืืฆืื ืฉื mypy. ืื ืื ื ืืืืจืื ืขื mypy ืืืืจืืขืื ืืืืืจืื ืขื ืฆืืืชืื ืืื ืืขืืืจ ืืื ืืืชืืื ืขื ืืขืจืืช ืกืื.
ืกืงืจืื. ืื ื ืขืืจืืื ืกืงืจื ืืฉืชืืฉืื ืชืงืืคืชืืื ืืื ืืืืืช ืืขืืืช ืขืืงืจืืืช. ืื ืื ื ืืืื ืื ืืืืช ืื ืจืืืง ืืคืชืจืื ืืขืืืช ืืื (ืืคืืื ืืฆืืจืช ืฉืคื ืืืฉื ืืื ืืืืืฅ ืืช mypy!).
ืืืฆืืขืื. ืฉืืคืจื ื ืืืื ืืช ืืืืฆืืขืื ืฉื mypy ืขื ืืื ืฉืืืืฉ ืืืืื ืื-mypyc. ืื ื ืขืฉื ืืื ืืืืืืง ืืช ืื ืื ืืืืช ืืืชืขืืจืจืืช ืืืืื ืชืืืื ืืืขืจื, ืืขื ืื ืช ืฉื ืืชื ืืืื ืืขืืื ืขื ืืืืืืช ืืืืืืช ืฉื ืงืื.
ืืื ืืืจืฆืื ืขื ืขืืจืืื. ืื ืื ื ืืืื ืืชืืืื ืืืคืขืืช mypy ืืขืืจืืื ืคืืคืืืจืืื ื-Dropbox. ืื ืืืื PyCharm, Vim ืืงืื VS. ืื ืคืฉื ืืืื ืืช ืชืืืื ืืขืจืช ืืงืื ืืืืืงืช ืืคืื ืงืฆืืื ืืืืช ืฉืื. ืกืืืื ืืื ืฉื ืคืขืืืืช ื ืคืืฆืื ืืขืช ืืขืจืช ืงืื ืงืืื.
ื ืืชืื ืกืืื. ืืฆืจื ื ืืื ืืืกืงืช ืืชืืืืช ืคืื ืงืฆืืืช ืืืืฆืขืืช ืืื ื ืืชืื ืกืืื. ืืืื ืืื ืืืื ืืขืืื ืจืง ืืืฆืืื ืคืฉืืืื ืืืกืืช, ืืื ืืื ืขืืจ ืื ื ืืืืืื ืืช ืืืกืื ืกืืื ืืงืื ืฉืื ื ืืื ืืจืื ืืืืฅ.
ืชืืืื ืืกืคืจืืืช ืฆื ืฉืืืฉื. ืจืืื ืืืคืจืืืงืืื ืฉืื ื ืืฉืชืืฉืื ืืขืจืืช ืืืืื SQLAlchemy. ืืื ืื ืฆื ืืช ืืืืืืืช ืืืื ืืืืช ืฉื Python ืฉืกืืื PEP 484 ืืื ื ืืกืืืืื ืืืืื ืืฉืืจืืช. ืื ื, ืืืชืื ื-PEP 561, ืืฆืจื ื ืืช ืงืืืฅ ื-stub ืืืชืืื ืืืชืื ื ืชืืกืฃ ืขืืืจ mypy (
ืงืฉืืื ืฉื ืชืงืื ื ืืื
ืืืจื ื-4 ืืืืืื ืฉืืจืืช ืฉื ืงืื ืืืงืื ืื ืชืืื ืืืืชื ืงืื ืขืืืจื ื. ืืฉืืื ืื ื ืชืงืื ื ืืืืจืืช ืจืืื ืืขืฉืื ื ืืื ืืขืืืืช. ืืื ืืืง ืืืืขืืืช ืฉื ืชืงืื ื ืืื. ืื ื ืืงืืืื ืฉืกืคืจ ืขืืืื ืืขืืืจ ืืืืจืื ืืืืื ืข ืืืขืืืช ืืืืืช.
ืืกืจืื ืงืืฆืื. ืืชืืื ื ืืช ืขืืืืชื ื ืืืืืงืช ืืืืช ืงืื ื ืฉื ืงืืฆืื ืืืื. ืื ืืืจ ืฉืื ื ืืื ืืงืืฆืื ืืืื ืื ื ืืืง. ืงืืฆืื ื ืืกืคื ืืจืฉืืืช ืืกืจืืงื ืืืฉืจ ืืืคืืขื ืืื ืืืขืจืืช ืืจืืฉืื ืืช. ืื ืืฉืื ืืืื ืืืืืื ืฉื ืืฆื ืืืืฅ ืืชืืื ืืืืืืช, ืื ืืืืจื ื ืขื ืขืืืื ืขื ืขืจืืื ืืื Any
, ืฉืื ื ืืืงื ืืื. ืื ืืืืื ืืืืืื ืืฉืืขืืชื ืฉื ืืืืง ืืืงืืื, ืืืืืื ืืฉืืืื ืืจืืฉืื ืื ืฉื ืืืืืจื. ืืืฉื ืื ืขืืื ืืฆืืจื ืืคืชืืขื ืขื ืื, ืื ืื ืืฆื ืืืคืืื ื ืืื ืฉืืืกืคืช ืงืืฆืื ืืืืงืฃ ืืกืงืืจื ืืืฉืคืช ืืขืืืช ืืืืงืื ืืืจืื ืฉื ืืกืืก ืืงืื. ืืืงืจื ืืจืข, ืืืฉืจ ืืืืื ืฉื ื ืืืืจื ืงืื ืืืืืืื, ืฉืืื, ืืื ืชืืืช ืื ืืื, ืืืจ ื ืืืงื ืืืคืืกืื, ืืชืืจืจ ืฉืกืืื ืืืืืจืื ืืืื ืืื ื ืืชืืืืื ืื ืืื. ืื ืืืืื ืืฆืืจื ืืืฆืข ืฉืื ืืืื ืจืืื ืืืขืจืืช. ืืืื ืืืืืจ ืืขืช, ืื ื ืืืื ืื ืฉืืืื ื ืฆืจืืืื ืืืืกืืฃ ืืืงืื ืืืชืจ ืืืืืื ืกืคืจืืืช ืืืื ืืืืืจ ืืืืงืช ืืกืื ืฉื mypy. ืื ืืืคืื ืืช ืืขืืืื ืฉืื ื ืืืจืื ืืืชืจ ืฆืคืืื.
ืืขืจืช ืงืื ืืฉื. ืืฉืืชืืื ื, ืืื ืื ื ืืขืจื 4 ืืืืืื ืฉืืจืืช ืฉื ืงืื Python ืงืืื. ืืื ืืจืืจ ืฉืืืืืืจ ืืื ืืงืื ืืื ืืื ืื ืืฉืืื ืงืื. ืืฆืจื ื ืืื ืืฉื PyAnnotate ืฉืืืื ืืืกืืฃ ืืืืข ืขื ืกืืืื ืชืื ืืื ืจืืฆืืช ืืืืงืืช ืืืืื ืืืืกืืฃ ืืขืจืืช ืกืื ืืงืื ืฉืื ืขื ืกืื ืืืืืข ืฉื ืืกืฃ. ืขื ืืืช, ืื ืฉืื ื ืื ืืืืืืฅ ื ืจืื ืืืืืื ืฉื ืืื ืื. ืืืกืืฃ ืืืืืข ืืื ืืืื, ืืืขืจืืช ืฉื ืืฆืจื ืืืืคื ืืืืืืื ืืจืฉื ืืขืชืื ืงืจืืืืช ืขืจืืืืช ืืื ืืืช ืจืืืช. ืืฉืื ื ืืืคืขืื ืืช ืืืื ืืื ืืืืคื ืืืืืืื ืืื ืคืขื ืฉืื ืื ื ืืืืงืื ืงืื, ืื ืืืกืืฃ ืืืืข ืขื ืกืืืื ืขื ืกืื ื ืืชืื ืืืืช ืงืื ื ืฉื ืืงืฉืืช ืจืฉืช ืืคืืขื, ืืื ืืืืื ื ืฉืื ืืขืฉืืช ืืืช ืืืืืื ืฉืฉืชื ืืฉืืืืช ืืื ืืกืืื ืืช ืืื.
ืืชืืฆืื ืืื, ื ืืชื ืืฆืืื ืฉืจืื ืืงืื ืกืืื ืืืืคื ืืื ื ืขื ืืื ืืขืืื. ืขื ืื ืช ืืื ืืืช ืชืืืื ืื ืืืืืื ืื ืืื, ืื ื ืืืื ืื ืืืืืช ืขื ืืืืืืื ืืคืื ืงืฆืืืช ืืฉืืืืช ืืืืืื ืฉืืฉ ืืืขืืจ. ืืืืืื, ืืฉืื ืืกืคืง ืืขืจืืช ืกืื ืขืืืจ ืืืืื ืกืคืจืืื ืืืฉืืฉ ืืืืืช ืืงืืืืช. ืืื ืฉืืจืืช ืืฉื ืฉืืืืืฃ ืืืืฉ ืืืจ ืื ืื ืื ืืฉืื ืืืขืืจ. ืื ืื ื ืื ืืชื ืกืื ืืฉืืืืฉ ืื ืืชืื ืกืืื ืืื ืืืฆืืจ ืืขืจืืช ืกืื ืขืืืจ ืงืื ืืืืจ ืงืืื.
ืืืื ืืืืืจื. ืืืขืื ืืืืจืชื ืขื ืืืื ืืืืืจื ("ืกืืื ืืชืืืช"), ืฉืงืืืื ืืงืฉื ืขื ืืืฆืช mypy. ืืืื ื ืฆืจืืืื ืื ืืขืืื ืงืฉื ืืื ืืืจืื ื-mypy ืืชืืื ืืื ืืื ื ื ืืืื ืฉื ืืจืืื ืืืืืื ืืืืืืจื ืืื. ืืืืจืื ื ืืฉืืื ื ืคืจืืืงื ืชืื ืื ืืืืฉ ืฉื ืืืขืจืืช ืฉืชืืงื ืืช ืจืื ืืืขืืืช ืฉื mypy ืื ืืืข ืืืืืื โโืืขืืื. ืืืขืืืช ืืืื ื ืืขื ืืืขืฉื ืืืืืื ืืจืืฉืื ืื ืฉื ืืคืจืืืงื, ืืืืจื ื-Alore, ืืฉืคื ืืืื ืืืืช ืฉืื ืืชืืงื ืคืจืืืงื mypy ืืืงืืจ. ืชืืืืจ Alore ืืงื ืขื ืคืชืจืื ืืขืืืช ืขื ืคืงืืืืช ืืืืื โโืืืืืจืืืช. mypy ืืืืืจื ืืช ืืจืฉ ืืื ืืืืืืช ืืืืืฉืื ืืงืืื ืืืคืฉืื ืฉืื (ืฉืืชืืื ืืืื ืืืืืจ). Python ืืงืฉื ืขื ืืขืืืื ืขื ืืืื ืืขืืื, ืืขืืงืจ ืืืื ืฉืืืืืืืื ืืขืืจืคืืื. ืืืืืื, ืคืขืืืช ืืงืฆืื ืขืฉืืื ืืืขืฉื ืืืืืืจ ืืื ืื ืกืื. Mypy ืื ืชืืื ืืกืืืืช ืืืืืช ืืืจืื ืืืื ืขื ืฉืจืื ืืืืืช ืืืืืื โโืขืืืื. ืื ืืื ืื ืืืืจืืช ืืืื ืืืืืจ. ืืืืืืช ืืจืืขืืช ืืืชืงืืืืช ืืฉืืืื ืืจืืฉืื ืื ืฉื ืคืืชืื ืืืขืจืืช ืืืืืืช ืืืืืช ืืคืชืขื ืื ื ืขืืื ืืืชืื ืช ืฉื ืื ืจืืืช ืืืืจ ืืื.
ืชืืฆืืืช: ืืืจื ื-5 ืืืืืื ืฉืืจืืช ืงืื ืืืืคืงืื ืืืฉืื
ืคืจืืืงื mypy ืขืืจ ืืจื ืืจืืื - ืืืืืช ืืืคืืก ืืืงืืืื ืืขื ืืืขืจืืช ืืฉืืืืช ื-4 ืืืืืื ืฉืืจืืช ืฉื ืกืืื ืงืื ืืืฆืืจ. ืืื ืฉืืชืคืชืื mypy, ืจืืื ืืกืื ืฉื Python ืืื ืกืื ืืจืืืื. ืืืืื ืืื ืืชืคืชืื ืืขืจืืช ืืงืืืืืืช ืจืืช ืขืืฆืื ืกืืื ืืงืืืช ืงืื Python. ืืฉ ืื ืืงืื ืืชืืืื ืืกืคืจืืื, ืืื ืืืื ืืื ืขืืจ ื-IDEs ืืืขืืจืืื, ืืฉ ืื ืืื ืืขืจืืืช ืืงืจืช ืกืืืื ืฉืืื ืืืช ืืื ืืชืจืื ืืช ืืืกืจืื ืืช ืืฉืื.
ืืืจืืช ืฉืืืืงืช ืกืืืื ืืืจ ื ืชืื ื ืืืจืืคืืืงืก, ืื ื ืืืืื ืฉืื ืื ื ืขืืืื ืืชืืืืช ืืืจื ืฉื ืืงืืืช ืงืื Python. ืื ื ืืืฉื ืฉืืื ืืืืืืืช ืืืืงืช ืกืืืื ืืืฉืืื ืืืชืคืชื ืืืืฉืชืคืจ.
ืื ืขืืืื ืื ืืฉืชืืฉืช ืืืืืงืช ืกืืืื ืืคืจืืืงื Python ืืงื ื ืืืื ืืืื ืฉืื, ืื ืืข ืฉืขืืฉืื ืื ืืื ืืื ืืืื ืืืชืืื ืืขืืืจ ืืืงืืื ืกืืืืช. ืืืืจืชื ืขื ืืื ืฉืขืฉื ืืขืืจ ืืืื. ืืืฉ ืืื ืื ืืชืืจื ืขื ืื. ืืืืงืช ืกืืืื ืืืคืืช ืืช Python ืืฉืคื ืฉืืชืืืื ืืจืื ืืืชืจ ืืคืืชืื ืคืจืืืงืืื ืืืืืื ืืืฉืจ "Python ืจืืื".
ืงืืจืืื ืืงืจืื! ืืื ืืชื ืืฉืชืืฉ ืืืืืงืช ืกืื ืืคืจืืืงืืื ืฉื Python ืฉืื?
ืืงืืจ: www.habr.com