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

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

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

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

ДостиганС Π½Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° въвСдСн ΠΊΠΎΠ΄

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

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

НиС Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ (ΠΈ стандартизирахмС Π² слСдващитС PEP) Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° систСмата ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ позволяват ΠΏΠΎ-ΠΏΡ€Π΅Ρ†ΠΈΠ·Π½ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Π·Π° някои спСцифични ΠΌΠΎΠ΄Π΅Π»ΠΈ Π½Π° 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. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опрости процСса Π½Π° Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° функционалност. Π’Π΅Π·ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅ дСйствия са чСсто срСщани ΠΏΡ€ΠΈ Π°Π½ΠΎΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ ΠΊΠΎΠ΄.

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

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

Врудности, ΠΊΠΎΠΈΡ‚ΠΎ срСщнахмС

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

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

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

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

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

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

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ mypy ΠΈΠ·Π²ΡŠΡ€Π²Ρ дълъг ΠΏΡŠΡ‚ - ΠΎΡ‚ Ρ€Π°Π½Π½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ Π΄ΠΎ систСма, която ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π° 4 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ€Π΅Π΄Π° производствСни ΠΊΠΎΠ΄ΠΎΠ²ΠΈ Ρ‚ΠΈΠΏΠΎΠ²Π΅. Π‘ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° mypy Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ ΡΡŠΠ²Π΅Ρ‚ΠΈ Π½Π° Python бяха стандартизирани. Π’Π΅Π·ΠΈ Π΄Π½ΠΈ сС Π΅ Ρ€Π°Π·Π²ΠΈΠ»Π° ΠΌΠΎΡ‰Π½Π° СкосистСма ΠΎΠΊΠΎΠ»ΠΎ Π²ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄ Π½Π° Python. Има място Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈ инструмСнти Π·Π° IDE ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΈ, ΠΈΠΌΠ° няколко систСми Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Ρ‚ΠΈΠΏΠ°, всяка ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ° своитС плюсовС ΠΈ минуси.

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Ρ‚ΠΈΠΏΠ° Π²Π΅Ρ‡Π΅ Π΅ дадСност Π² Dropbox, вярвам, Ρ‡Π΅ всС ΠΎΡ‰Π΅ смС Π² Ρ€Π°Π½Π½ΠΈΡ‚Π΅ Π΄Π½ΠΈ Π½Π° въвСТданС Π½Π° ΠΊΠΎΠ΄ Π½Π° Python. Мисля, Ρ‡Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠ° Ρ‰Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Ρ‚ Π΄Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ ΠΈ подобряват.

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

Π£Π²Π°ΠΆΠ°Π΅ΠΌΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‚ΠΈΠΏΠ° във Π²Π°ΡˆΠΈΡ‚Π΅ Python ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ?

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

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

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€