ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡΠΌΠ΅ Π½Π° Π²Π°ΡˆΠ΅Ρ‚ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚Π°Ρ‚Π° част ΠΎΡ‚ ΠΏΡ€Π΅Π²ΠΎΠ΄Π° Π½Π° ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π·Π° ΠΏΡŠΡ‚Ρ, ΠΊΠΎΠΉΡ‚ΠΎ слСдва компанията Dropbox, внСдрявайки ΠΏΡ€ΠΈ сСбС си систСма Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Python ΠΊΠΎΠ΄.

ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3

β†’ ΠŸΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈ части: ΠΏΡŠΡ€Π²Π°Ρ‚Π° ΠΈ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π°

ΠŸΠΎΡΡ‚ΠΈΠ³Π°Π½Π΅ Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄

ΠžΡ‰Π΅ Π΅Π΄Π½Π° Π²Π°ΠΆΠ½Π° Π·Π°Π΄Π°Ρ‡Π° (Ρ‚ΠΎΠ²Π° бСшС Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΏΠΎ популярност ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, която Π²ΡŠΠ»Π½ΡƒΠ²Π°ΡˆΠ΅ участницитС Π² Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈΡ‚Π΅ Π°Π½ΠΊΠ΅Ρ‚ΠΈ) бСшС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° ΠΊΠΎΠ΄Π° Π² Dropbox, ΠΏΠΎΠΊΡ€ΠΈΡ‚ с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π˜Π·ΠΏΡ€ΠΎΠ±Π²Π°Ρ…ΠΌΠ΅ няколко ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° Ρ‚Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π° – ΠΎΡ‚ СстСствСното нарастванС Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° типизирания ΠΊΠΎΠ΄ Π΄ΠΎ фокусиранСто Π½Π° усилията Π½Π° Π΅ΠΊΠΈΠΏΠ° mypy Π²ΡŠΡ€Ρ…Ρƒ статично ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€Π°Π½ΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка създадС Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅, Ρ‡Π΅ няма простата ΠΏΠ΅Ρ‡Π΅Π»ΠΈΠ²ΡˆΠ° стратСгия, Π½ΠΎ успяхмС Π΄Π° постигнСм Π±ΡŠΡ€Π· растСТ Π½Π° ΠΎΠ±Π΅ΠΌΠ° Π½Π° анотирания ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π°ΠΉΠΊΠΈ мноТСство ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° Π² нашия Π½Π°ΠΉ-голям Python Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ (с Π±Π΅ΠΊΠ΅Π½Π΄ ΠΊΠΎΠ΄) броят Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅Ρ‚Π΅ с Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄ достигна ΠΏΠΎΡ‡Ρ‚ΠΈ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π°. Π Π°Π±ΠΎΡ‚Π°Ρ‚Π° ΠΏΠΎ статичната типизация Π½Π° ΠΊΠΎΠ΄Π° бСшС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ΅Π½Π° Π·Π° ΠΎΠΊΠΎΠ»ΠΎ Ρ‚Ρ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ. Mypy сСга ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ Π·Π° ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅ Π½Π° ΠΊΠΎΠ΄Π° с Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ улСсняват Π½Π°Π±Π»ΡŽΠ΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° процСса Π½Π° типизация. По-спСциално, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° създавамС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ ΠΏΠΎ ΠΊΠΎΠ΄Π° с нСопрСдСлСности Π² Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ явното ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠ° Any Π² Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ, ΠΈΠ»ΠΈ с Ρ‚Π°ΠΊΠΈΠ²Π° ΠΊΠ°Ρ‚ΠΎ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π° външни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ няма Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅. Π’ Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° повишаванС Π½Π° точността Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² Dropbox, Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ принос Π² подобряванСто Π½Π° опрСдСлСнията Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ (Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ stub-Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅) Π·Π° някои популярни опСнсорс Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² цСнтрализирания Python Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ typeshed.

НиС Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ (ΠΈ стандартизирахмС Π² послСдващитС PEP) Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° систСмата Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° някои спСцифични Python шаблони. Π—Π°Π±Π΅Π»Π΅ΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° Ρ‚ΠΎΠ²Π° Π΅ TypeDict, ΠΊΠΎΠΉΡ‚ΠΎ прСдоставя Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° JSON-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Ρ€Π΅Ρ‡Π½ΠΈΡ†ΠΈ с фиксиран Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π½ΠΈΠ·ΠΎΠ²ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, всСки ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° стойност Π½Π° собствСн Ρ‚ΠΈΠΏ. НиС Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΠΌ Π΄Π° Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°ΠΌΠ΅ систСмата Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅. ВСроятно слСдващата Π½ΠΈ ΡΡ‚ΡŠΠΏΠΊΠ° Ρ‰Π΅ бъдС подобряванСто Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Python Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с числа.

ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3
Π‘Ρ€ΠΎΠΉ Ρ€Π΅Π΄ΠΎΠ²Π΅ с Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄: ΡΡŠΡ€Π²ΡŠΡ€

ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3
Π‘Ρ€ΠΎΠΉ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄: ΠΊΠ»ΠΈΠ΅Π½Ρ‚

ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3
ΠžΠ±Ρ‰ Π±Ρ€ΠΎΠΉ Ρ€Π΅Π΄ΠΎΠ²Π΅ Π½Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄

Π•Ρ‚ΠΎ ΠΎΠ±Π·ΠΎΡ€ Π½Π° основнитС характСристики Π½Π° дСйствията, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ…ΠΌΠ΅, Π·Π° Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ ΠΎΠ±Π΅ΠΌΠ° Π½Π° анотирания ΠΊΠΎΠ΄ Π² Dropbox:

Бтрогост Π½Π° анотацията. ΠŸΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Ρ…ΠΌΠ΅ изискванията Π·Π° строгост Π½Π° анотацията Π½Π° новия ΠΊΠΎΠ΄. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° Π»ΠΈΠ½Ρ‚Π΅Ρ€Π°, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° добавянС Π½Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ ΠΈΠΌΠ° някои Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Π‘Π΅Π³Π° изисквамС Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² Π½ΠΎΠ²ΠΈΡ‚Π΅ Python Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π² ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅.

Π”ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° типизация. ВсСки сСдмица ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌΠ΅ Π½Π° Π΅ΠΊΠΈΠΏΠΈΡ‚Π΅ Π΄ΠΎΠΊΠ»Π°Π΄ΠΈ Π·Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° типизация Π½Π° тСхния ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π²Π°ΠΌΠ΅ ΡΡŠΠ²Π΅Ρ‚ΠΈ относно Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ трябва Π΄Π° сС Π°Π½ΠΎΡ‚ΠΈΡ€Π° ΠΏΡŠΡ€Π²ΠΎ.

ΠŸΠΎΠΏΡƒΠ»ΡΡ€ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° mypy. Π Π°Π·ΠΊΠ°Π·Π²Π°ΠΌΠ΅ Π·Π° mypy Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ ΠΈ ΠΎΠ±Ρ‰ΡƒΠ²Π°ΠΌΠ΅ с Π΅ΠΊΠΈΠΏΠΈ, ΠΏΠΎΠΌΠ°Π³Π°ΠΉΠΊΠΈ ΠΈΠΌ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ‚ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅.

АнкСти. ΠŸΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΈ Π°Π½ΠΊΠ΅Ρ‚ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π·Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° основнитС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ. Π“ΠΎΡ‚ΠΎΠ²ΠΈ смС Π΄Π° ΠΎΡ‚ΠΈΠ΄Π΅ΠΌ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ Π΄Π°Π»Π΅Ρ‡ Π² Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄ΠΎ създаванС Π½Π° Π½ΠΎΠ² Π΅Π·ΠΈΠΊ Π·Π° ускоряванС Π½Π° mypy!).

ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎΡΡ‚. Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…ΠΌΠ΅ производитСлността Π½Π° mypy, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π΅ΠΌΠΎΠ½ ΠΈ mypyc. Π’ΠΎΠ²Π° Π±Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ, Π·Π° Π΄Π° сС изгладят нСудобствата, Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‰ΠΈ Π² процСса Π½Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅, ΠΈ Π΄Π° сС ΠΏΠΎΠ»ΡƒΡ‡ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΎΠ±Π΅ΠΌΠΈ ΠΊΠΎΠ΄.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ. Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ срСдства Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стартиранС Π½Π° mypy Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са популярни Π² Dropbox. Π’ΠΊΠ»ΡŽΡ‡Π²Π° PyCharm, Vim ΠΈ VS Code. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опрости процСса Π½Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° работоспособност. Подобни дСйствия ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ са Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΈ Π·Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ ΠΊΠΎΠ΄.

Π‘Ρ‚Π°Ρ‚ΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ·. Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ инструмСнт Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° статичСн Π°Π½Π°Π»ΠΈΠ·. Π’ΠΎΠ·ΠΈ инструмСнт ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ само Π² сравнитСлно прости ситуации, Π½ΠΎ Π½ΠΈ ΠΏΠΎΠΌΠΎΠ³Π½Π° Π±Π΅Π· усилия Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠΌ ΠΏΠΎΠΊΡ€ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° с Ρ‚ΠΈΠΏΠΎΠ²Π΅.

ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ инструмСнти SQLAlchemy. Π’ Π½Π΅Π³ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Python, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ²Π΅ PEP 484 Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ. Π’ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с PEP 561, ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ stub Ρ„Π°ΠΉΠ» ΠΈ написахмС плъгин Π·Π° mypy (ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ), подобряваща ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° SQLAlchemy.

Врудности, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅

ΠŸΡŠΡ‚ΡΡ‚ към 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€Π°Π½ ΠΊΠΎΠ΄ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ бСшС лСсСн. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ‚ΠΎΠ·ΠΈ процСс сС Π½Π°Ρ‚ΡŠΠΊΠ½Π°Ρ…ΠΌΠ΅ Π½Π° мноТСство прСпятствия ΠΈ Π½Π°ΠΏΡ€Π°Π²ΠΈΡ…ΠΌΠ΅ няколко Π³Ρ€Π΅ΡˆΠΊΠΈ. Π•Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ сС ΡΠ±Π»ΡŠΡΠΊΠ°Ρ…ΠΌΠ΅. НадявамС сС, Ρ‡Π΅ Ρ€Π°Π·ΠΊΠ°Π·ΡŠΡ‚ Π·Π° тях Ρ‰Π΅ ΠΏΠΎΠΌΠΎΠ³Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ трудности.

ΠŸΡ€ΠΎΠΏΡƒΡΠ½Π°Ρ‚ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Π—Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°, провСрявайки само малък ΠΎΠ±Π΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅. Всичко останало, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ попадашС Π² Ρ‚ΠΎΠ²Π° число, Π½Π΅ бСшС провСрявано. Π€Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π² списъка Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° сС добавяха, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π² тях сС появяваха ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ. Ако Π½Π΅Ρ‰ΠΎ сС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°ΡˆΠ΅ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ», Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ извън ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π°, сС касаСшС Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° със стойности ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Any, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ бяха провСрявани ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ. Π’ΠΎΠ²Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° Π·Π°Π³ΡƒΠ±Π° Π½Π° точността Π½Π° типизацията, особСно Π½Π° Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ Π½Π° миграцията. Π’Π°Π·ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΡˆΠ΅ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄ΠΎΠ±Ρ€Π΅, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΡ‚ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ бСшС, Ρ‡Π΅ добавянСто Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Ρ€Π°Π·ΠΊΡ€ΠΈΠ²Π°ΡˆΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΈ части Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ‚Π° Π±Π°Π·Π°. Π’ Π½Π°ΠΉ-лошия случай, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π²Π΅ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ области ΠΎΡ‚ ΠΊΠΎΠ΄, Π² ΠΊΠΎΠΈΡ‚ΠΎ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π²Π΅Ρ‡Π΅ бяха ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ нСзависимо, сС ΡΡŠΠ±ΠΈΡ€Π°Ρ…Π°, сС оказвашС, Ρ‡Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² Ρ‚Π΅Π·ΠΈ области са Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ. Π’ΠΎΠ²Π° водСшС Π΄ΠΎ нСобходимостта ΠΎΡ‚ внасянС Π½Π° мноТСство измСнСния Π² Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈΡ‚Π΅. Π‘Π΅Π³Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌ Π½Π°Π·Π°Π΄, Ρ€Π°Π·Π±ΠΈΡ€Π°ΠΌΠ΅, Ρ‡Π΅ Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ основнитС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π² ΠΎΠ±Ρ…Π²Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° с mypy възмоТно Π½Π°ΠΉ-скоро. Π’ΠΎΠ²Π° Ρ‰Π΅ΡˆΠ΅ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-прСдсказуСма.

АнотиранС Π½Π° стар ΠΊΠΎΠ΄. ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°, ΠΈΠΌΠ°Ρ…ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Π²Π΅Ρ‡Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ Python ΠΊΠΎΠ΄. Ясно бСшС, Ρ‡Π΅ Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° цСлия Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ Π΅ Π·Π°Π΄Π°Ρ‡Π°, която Π½Π΅ Π΅ лСсна. Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ инструмСнт, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ PyAnnotate, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π° информация Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС Π½Π° тСстовСтС ΠΈ Π΄Π° добавя Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² ΠΊΠΎΠ΄Π° Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° ΡΡŠΠ±Ρ€Π°Π½Π°Ρ‚Π° информация. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π½Π΅ забСлязахмС ΡˆΠΈΡ€ΠΎΠΊΠΎ внСдряванС Π½Π° Ρ‚ΠΎΠ·ΠΈ инструмСнт. Π‘ΡŠΠ±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° информация Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ бСшС Π±Π°Π²Π½ΠΎ, Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ чСсто изискваха ΠΌΠ½ΠΎΠ³ΠΎ Ρ€ΡŠΡ‡Π½ΠΈ ΠΊΠΎΡ€Π΅ΠΊΡ†ΠΈΠΈ. ΠœΠΈΡΠ»Π΅Ρ…ΠΌΠ΅ Π΄Π° задСйствамС Ρ‚ΠΎΠ·ΠΈ инструмСнт Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈ всяка ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ информация Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° малък ΠΎΠ±Π΅ΠΌ Ρ€Π΅Π°Π»Π½ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ заявки, Π½ΠΎ Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Π½Π΅ Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠΌ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ всСки ΠΎΡ‚ Ρ‚Π΅Π·ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²Π°ΡˆΠ΅ Ρ‚Π²ΡŠΡ€Π΄Π΅ висок риск.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈΠΌ, Ρ‡Π΅ голяма част ΠΎΡ‚ ΠΊΠΎΠ΄Π° бСшС Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π° Ρ€ΡŠΡ‡Π½ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎΠ²ΠΈΡ‚Π΅ собствСници. НиС, Π·Π° Π΄Π° насочим Ρ‚ΠΎΠ·ΠΈ процСс Π² ΠΏΡ€Π°Π²ΠΈΠ»Π½Π°Ρ‚Π° посока, подготвямС ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΈ Π·Π° особСно Π²Π°ΠΆΠ½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½ΠΈ. НапримСр, Π²Π°ΠΆΠ½ΠΎ Π΅ Π΄Π° снабдим с Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ типовия Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π΅Π½ ΠΌΠΎΠ΄ΡƒΠ», ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² стотици мСста. А старият сСрвис, ΠΊΠΎΠΉΡ‚ΠΎ сС замСня с Π½ΠΎΠ², Π½Π΅ Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π²Π°ΠΆΠ΅Π½ Π·Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅. ОсвСн Ρ‚ΠΎΠ²Π°, СкспСримСнтирамС с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° статичСн Π°Π½Π°Π»ΠΈΠ· Π·Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° Π°Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° стария ΠΊΠΎΠ΄.

Π¦ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ. По-Π³ΠΎΡ€Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ… Π·Π° Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ (Π·Π° "възли Π½Π° зависимости"), ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ…Π° ускорСниСто Π½Π° mypy. ОсвСн Ρ‚ΠΎΠ²Π°, Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ сСриозно Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΏΠΎ осигуряванСто Π½Π° mypy с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° всички Π²ΠΈΠ΄ΠΎΠ²Π΅ ΠΈΠ΄ΠΈΠΎΠΌΠΈ, чиято ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° възникванС са Ρ‚Π΅Π·ΠΈ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ. Наскоро Π·Π°Π²ΡŠΡ€ΡˆΠΈΡ…ΠΌΠ΅ голям ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π·Π° Ρ€Π΅Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° систСмата, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΠΎΠΏΡ€Π°Π²ΠΈ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π½Π° mypy, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈΡ‚Π΅ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ. Π’Π΅Π·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΏΡ€ΠΎΠΈΠ·Π»ΠΈΠ·Π°Ρ…Π° ΠΎΡ‚ доста Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΄Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, ΠΎΡ‰Π΅ ΠΎΡ‚ Alore, ΡƒΡ‡Π΅Π±Π΅Π½ Π΅Π·ΠΈΠΊ, Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ mypy ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ бСшС ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½. Π‘ΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡΡŠΡ‚ Π½Π° Alore позволява лСсно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ с Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ Π·Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅. Π‘ΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈΡΡ‚ mypy наслСди някои ограничСния ΠΎΡ‚ своята Ρ€Π°Π½Π½Π° простичка рСализация (която бСшС ΠΎΡ‚Π»ΠΈΡ‡Π½Π° Π·Π° Alore). Python затруднява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈ основно Π·Π°Ρ€Π°Π΄ΠΈ нСяснотата Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅. НапримСр, ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° опСрацията Π·Π° присвояванС Π½Π° стойност ΠΌΠΎΠΆΠ΅ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Π΄Π° сС опрСдСля псСвдоним Π½Π° Ρ‚ΠΈΠΏΠ°. Mypy Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ успява Π΄Π° Ρ€Π°Π·ΠΊΡ€ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π΅Ρ‰Π°, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° част ΠΎΡ‚ Ρ†ΠΈΠΊΡŠΠ»Π° Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° Π½Π΅ бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°. Π’ Alore нямашС Ρ‚Π°ΠΊΠΈΠ²Π° нСясноти. ΠΠ΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π²Π·Π΅Ρ‚ΠΈ Π½Π° Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΅Ρ‚Π°ΠΏΠΈ ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠ·Π½Π΅Π½Π°Π΄Π°Ρ‚ програмиститС слСд ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ: ΠΏΡŠΡ‚ΡΡ‚ към 5 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° ΠΊΠΎΠ΄ ΠΈ Π½ΠΎΠ²ΠΈ Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚ΠΈ

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ mypy ΠΏΡ€Π΅ΠΌΠΈΠ½Π° дълъг ΠΏΡŠΡ‚ β€” ΠΎΡ‚ Ρ€Π°Π½Π½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ Π΄ΠΎ систСма, с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° която сС ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ ΠΊΠΎΠ΄Π° с ΠΎΠ±Π΅ΠΌ ΠΎΡ‚ 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π°. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° mypy бСшС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½Π° стандартизация Π½Π° подсказкитС Π·Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² Python. Π’ наши Π΄Π½ΠΈ ΠΎΠΊΠΎΠ»ΠΎ типизацията Π½Π° Python ΠΊΠΎΠ΄Π° сС Π΅ Ρ€Π°Π·Π²ΠΈΠ»Π° ΠΌΠΎΡ‰Π½Π° СкосистСма. Вя обСдинява ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°Π»ΠΈΡ‡Π½ΠΈ са ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ срСдства Π·Π° IDE ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ, ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° няколко систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, всяка ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° своитС прСдимства ΠΈ Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π²Π΅Ρ‡Π΅ сС Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π² Dropbox ΠΊΠ°Ρ‚ΠΎ Π½Π΅Ρ‰ΠΎ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ, съм ΡƒΠ±Π΅Π΄Π΅Π½, Ρ‡Π΅ всС ΠΎΡ‰Π΅ ΠΆΠΈΠ²Π΅Π΅ΠΌ Π² Π½Π°Ρ‡Π°Π»ΠΎΡ‚ΠΎ Π½Π° типизацията Π½Π° Python ΠΊΠΎΠ΄. Мисля, Ρ‡Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Ρ‚ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ ΠΈ ΡƒΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²Π°Ρ‚.

Ако всС ΠΎΡ‰Π΅ Π½Π΅ стС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π² своя ΠΌΠ°Ρ‰Π°Π±Π΅Π½ Python ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, Π·Π½Π°ΠΉΡ‚Π΅, Ρ‡Π΅ сСга Π΅ ΠΌΠ½ΠΎΠ³ΠΎ подходящо Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚Π΅ към статична типизация. Разговарях с Ρ…ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ ΠΏΡ€Π΅Ρ…ΠΎΠ΄. Никой ΠΎΡ‚ тях Π½Π΅ Π΅ съТалявал. ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŠΡ‚ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π° Python Π² Π΅Π·ΠΈΠΊ, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-подходящ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π² сравнСниС с β€žΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Pythonβ€œ.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π»ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² своитС Python ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ?

ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3
ΠŸΡŠΡ‚ΡΡ‚ към ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅Ρ‚Π΅ Π² 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° Python ΠΊΠΎΠ΄. Част 3

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster