ΠΠ΅Π½Π΅ΡΠΊΠ° Π²ΠΈ Π³ΠΎ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠ²ΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡΠ΅Π²ΠΎΠ΄ΠΎΡ Π½Π° ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°Π»ΠΎΡ Π·Π° ΡΠΎΠ° ΠΊΠ°ΠΊΠΎ Dropbox ΡΠ΅ ΡΠΏΡΠ°Π²ΡΠ²Π° ΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python.
Dropbox ΠΏΠΈΡΡΠ²Π° ΠΌΠ½ΠΎΠ³Ρ Π²ΠΎ Python. Π’ΠΎΠ° Π΅ ΡΠ°Π·ΠΈΠΊ ΡΡΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΈΡΠΎΠΊΠΎ, ΠΊΠ°ΠΊΠΎ Π·Π° back-end ΡΡΠ»ΡΠ³ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° Π΄Π΅ΡΠΊΡΠΎΠΏ-ΠΊΠ»ΠΈΠ΅Π½Ρ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠ½ΠΎΠ³Ρ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Go, TypeScript ΠΈ Rust, Π½ΠΎ Python Π΅ Π½Π°ΡΠΈΠΎΡ Π³Π»Π°Π²Π΅Π½ ΡΠ°Π·ΠΈΠΊ. Π‘ΠΎ ΠΎΠ³Π»Π΅Π΄ Π½Π° Π½Π°ΡΠ°ΡΠ° ΡΠΊΠ°Π»Π°, Π° Π½ΠΈΠ΅ Π·Π±ΠΎΡΡΠ²Π°ΠΌΠ΅ Π·Π° ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΠΠ°ΡΡΠΎΠ½, ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΎΡΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠΎΠ² ΠΊΠΎΠ΄ Π½Π΅ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ Π³ΠΎ ΠΊΠΎΠΌΠΏΠ»ΠΈΡΠΈΡΠ°ΡΠ΅ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠ½Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΎ Π΄Π° Π²Π»ΠΈΡΠ°Π΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΠ° Π½Π° ΡΡΡΠ΄ΠΎΡ. ΠΠ° Π΄Π° Π³ΠΎ ΡΠ±Π»Π°ΠΆΠΈΠΌΠ΅ ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΠΎΡΠ½Π°Π²ΠΌΠ΅ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ Π΄Π° Π³ΠΎ ΠΏΡΠ΅ΡΡΠ»Π°ΠΌΠ΅ Π½Π°ΡΠΈΠΎΡ ΠΊΠΎΠ΄ ΠΊΠΎΠ½ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ mypy. ΠΠ²Π° Π΅ Π²Π΅ΡΠΎΡΠ°ΡΠ½ΠΎ Π½Π°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΠΎΡ ΡΠ°ΠΌΠΎΡΡΠΎΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π·Π° Python. Mypy Π΅ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄, Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ Π³Π»Π°Π²Π½ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π²ΠΎ Dropbox.
Dropbox Π±Π΅ΡΠ΅ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΏΡΠ²ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ ΡΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python Π²ΠΎ ΠΎΠ²Π°Π° ΡΠΊΠ°Π»Π°. Mypy ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΈΠ»ΡΠ°Π΄Π½ΠΈΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΎΠ²ΠΈΠ΅ Π΄Π΅Π½ΠΎΠ²ΠΈ. ΠΠ²Π°Π° Π°Π»Π°ΡΠΊΠ° Π±Π΅Π·Π±ΡΠΎΡ ΠΏΠ°ΡΠΈ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π²Π΅Π»Π°Ρ, βΡΠ΅ΡΡΠΈΡΠ°Π½ Π²ΠΎ Π±ΠΈΡΠΊΠ°β. ΠΠΎΠΌΠΈΠ½Π°Π²ΠΌΠ΅ Π΄ΠΎΠ»Π³ ΠΏΠ°Ρ Π·Π° Π΄Π° ΡΡΠΈΠ³Π½Π΅ΠΌΠ΅ Π΄ΠΎ ΠΊΠ°Π΄Π΅ ΡΡΠΎ ΡΠΌΠ΅ ΡΠ΅Π³Π°. ΠΠ° ΠΏΠ°ΡΠΎΡ, ΠΈΠΌΠ°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΈ Π·Π°ΡΠ°ΡΠΈ ΠΈ Π½Π΅ΡΡΠΏΠ΅ΡΠ½ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ. ΠΠ²ΠΎΡ ΠΏΠΎΡΡ ΡΠ° ΠΎΠΏΡΠ°ΡΠ° ΠΈΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏ Π²ΠΎ Python, ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²ΠΈΡΠ΅ ΠΊΠ°ΡΠΏΠ΅ΡΡΠΈ ΠΏΠΎΡΠ΅ΡΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΌΠΎΡΠΎΡ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡ, Π΄ΠΎ Π΄Π΅Π½Π΅Ρ, ΠΊΠΎΠ³Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° Π½Π° ΡΠΈΠΏΠΎΡ ΠΈ Π½Π°Π²Π΅ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΠΏΠΎΡ ΡΡΠ°Π½Π°Π° Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈ Π·Π° Π±Π΅Π·Π±ΡΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΠΊΠΎΠΈ ΠΏΠΈΡΡΠ²Π°Π°Ρ Π²ΠΎ Python. ΠΠ²ΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ ΡΠ΅Π³Π° ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ΠΈ ΠΎΠ΄ ΠΌΠ½ΠΎΠ³Ρ Π°Π»Π°ΡΠΊΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ IDE ΠΈ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ.
β
ΠΠΎΡΡΠΎ Π΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ?
ΠΠΊΠΎ Π½Π΅ΠΊΠΎΠ³Π°Ρ ΡΡΠ΅ ΠΊΠΎΡΠΈΡΡΠ΅Π»Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ ΠΏΠΈΡΡΠ²Π°Π½ Python, ΠΌΠΎΠΆΠ΅Π±ΠΈ ΡΠ΅ ΠΈΠΌΠ°ΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΊΠΎΠ½ΡΡΠ·ΠΈΡΠ° Π·ΠΎΡΡΠΎ Π²ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΊΡΠ΅Π½Π° ΡΠΎΠ»ΠΊΠ°Π²Π° Π²ΡΠ΅Π²Π° ΠΎΠΊΠΎΠ»Ρ ΡΡΠ°ΡΠΈΡΠΊΠΎΡΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΈ mypy. ΠΠ»ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π²ΠΈ ΡΠ΅ Π΄ΠΎΠΏΠ°ΡΠ° Python ΡΠΎΠΊΠΌΡ ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅, Π° ΠΎΠ½Π° ΡΡΠΎ ΡΠ΅ ΡΠ»ΡΡΡΠ²Π° Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π²Π΅ Π²ΠΎΠ·Π½Π΅ΠΌΠΈΡΡΠ²Π°. ΠΠ»ΡΡΠΎΡ Π·Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΎΡΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΡ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡΠ°ΡΠ°: ΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌ Π²Π°ΡΠΈΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΠΎΠ½ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ ΡΡΠ°ΡΠΈΡΠ½ΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅, ΠΈ Π½Π° ΠΊΡΠ°ΡΠΎΡ, ΡΠΎΠ»ΠΊΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΈ ΡΡΠ΅Π±Π°.
ΠΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΡΠ°Π²ΠΈΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ Π΄ΠΎΡΡΠΈΠ³Π½Π°Π» Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π° ΠΎΠ΄ Π΄Π΅ΡΠ΅ΡΠΈΡΠΈ ΠΈΠ»ΡΠ°Π΄ΠΈ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ ΡΠ°Π±ΠΎΡΠ°Ρ Π½Π° Π½Π΅Π³ΠΎ. ΠΠ»Π΅Π΄Π°ΡΡΠΈ ΡΠ»ΠΈΡΠ΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ, Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΠΈΡΠΊΡΡΡΠ²ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΡΠ°Π·Π±ΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ ΠΊΠΎΠ΄ ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΊΠ»ΡΡΠΎΡ Π·Π° ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ. ΠΠ΅Π· ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠΊΡΠΈΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΠ°Ρ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΠ°ΡΠ° ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠ°Ρ. ΠΠ²Π΅ ΡΠΈΠΏΠΈΡΠ½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ° Π½Π° ΠΊΠΎΠΈ ΡΠ΅ΡΡΠΎ Π΅ ΡΠ΅ΡΠΊΠΎ Π΄Π° ΡΠ΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈ Π±Π΅Π· ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ:
- ΠΠ°Π»ΠΈ ΠΎΠ²Π°Π° ΡΡΠ½ΠΊΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈ
None
? - ΠΠ°ΠΊΠΎΠ² ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ²ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ?
items
? - ΠΠΎΡ Π΅ ΡΠΈΠΏΠΎΡ Π½Π° Π°ΡΡΠΈΠ±ΡΡΠΎΡ
id
:int
Π΄Π°Π»ΠΈ Π΅,str
, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ Π½Π΅ΠΊΠΎΡ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ ΡΠΈΠΏ? - ΠΠ°Π»ΠΈ ΠΎΠ²ΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΡΡΠ΅Π±Π° Π΄Π° Π±ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΎΠΊ? ΠΠ°Π»ΠΈ Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π° ΠΌΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅ ΡΠΎΡΠΊΠ°?
ΠΠΊΠΎ Π³ΠΎ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² ΡΡΠ°Π³ΠΌΠ΅Π½Ρ ΠΎΠ΄ ΠΊΠΎΠ΄ ΡΠΎ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ ΠΈ ΡΠ΅ ΠΎΠ±ΠΈΠ΄Π΅ΡΠ΅ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠΈΡΠ΅ Π½Π° ΡΠ»ΠΈΡΠ½ΠΈ ΠΏΡΠ°ΡΠ°ΡΠ°, ΡΠ΅ ΠΈΠ·Π»Π΅Π·Π΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ Π½Π°ΡΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π½Π°ΡΠ° Π·Π°Π΄Π°ΡΠ°:
class Resource:
id: bytes
...
def read_metadata(self,
items: Sequence[str]) -> Dict[str, MetadataItem]:
...
read_metadata
Π½Π΅ ΡΠ΅ Π²ΡΠ°ΡΠ°None
, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΠΏΠΎΡ Π½Π° Π²ΡΠ°ΡΠ°ΡΠ΅ Π½Π΅ Π΅Optional[β¦]
.- ΠΡΠ³ΡΠΌΠ΅Π½Ρ
items
Π΅ Π½ΠΈΠ·Π° ΠΎΠ΄ Π»ΠΈΠ½ΠΈΠΈ. ΠΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ²Π° ΡΠ»ΡΡΠ°ΡΠ½ΠΎ. - ΠΡΡΠΈΠ±ΡΡ
id
Π΅ Π½ΠΈΠ·Π° ΠΎΠ΄ Π±Π°ΡΡΠΈ.
ΠΠΎ ΠΈΠ΄Π΅Π°Π»Π΅Π½ ΡΠ²Π΅Ρ, Π±ΠΈ ΡΠ΅ ΠΎΡΠ΅ΠΊΡΠ²Π°Π»ΠΎ Π΄Π΅ΠΊΠ° ΡΠΈΡΠ΅ ΡΠ°ΠΊΠ²ΠΈ ΡΡΠΏΡΠΈΠ»Π½ΠΎΡΡΠΈ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° (docstring). ΠΠΎ, ΠΈΡΠΊΡΡΡΠ²ΠΎΡΠΎ Π΄Π°Π²Π° ΠΌΠ½ΠΎΠ³Ρ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΡΠ°ΠΊΡΠΎΡ Π΄Π΅ΠΊΠ° ΡΠ°ΠΊΠ²Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΡΠ΅ΡΡΠΎ Π½Π΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½Π° Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ ΡΠΎ ΠΊΠΎΡ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ°Π±ΠΎΡΠΈΡΠ΅. ΠΡΡΠΈ ΠΈ Π°ΠΊΠΎ ΡΠ°ΠΊΠ²Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π΅ ΠΏΡΠΈΡΡΡΠ½Π° Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ, Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΌΠ΅ΡΠ° Π½Π° Π½Π΅ΡΠ·ΠΈΠ½Π°ΡΠ° Π°ΠΏΡΠΎΠ»ΡΡΠ½Π° ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡ. ΠΠ²Π°Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π½Π΅ΡΠ°ΡΠ½Π°, Π½Π΅ΡΠΎΡΠ½Π° ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½Π° Π·Π° Π½Π΅Π΄ΠΎΡΠ°Π·Π±ΠΈΡΠ°ΡΠ°. ΠΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΈΠΌΠΎΠ²ΠΈ ΠΈΠ»ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, ΠΎΠ²ΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠ°Π½Π΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π°ΠΊΡΡΠ΅Π½.
ΠΠΎΠ΄Π΅ΠΊΠ° Python ΡΠ΅ ΠΈΡΡΠ°ΠΊΠ½ΡΠ²Π° Π²ΠΎ ΡΠ°Π½ΠΈΡΠ΅ ΠΈΠ»ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠ΅, Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΠΏΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ ΠΊΠΎΠΈ ΠΊΠΎΡΠΈΡΡΠ°Ρ Python ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠΎΠΎΡΠ°Ρ ΡΠΎ Π²ΠΈΡΠ°Π»Π½ΠΎΡΠΎ ΠΏΡΠ°ΡΠ°ΡΠ΅: βΠΠ°Π»ΠΈ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΡΠ΅ΠΏΠΈΡΡΠ²Π°ΠΌΠ΅ ΡΓ¨ Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΠΎΡΡΡΠΊΡΠ²Π°Π½ ΡΠ°Π·ΠΈΠΊ?β.
Π‘ΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ ΠΊΠ°ΠΊΠΎ mypy Π³ΠΎ ΡΠ΅ΡΠ°Π²Π°Π°Ρ Π³ΠΎΡΠ΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΎΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΡΠΎ ΡΠΎΠ° ΡΡΠΎ ΠΌΡ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π°Π°Ρ Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠΎΡ ΡΠΎΡΠΌΠ°Π»Π΅Π½ ΡΠ°Π·ΠΈΠΊ Π·Π° ΠΎΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΡΠΈΠΏΠΎΠ²ΠΈ ΠΈ ΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π΄Π°Π»ΠΈ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈΡΠ΅ Π·Π° ΡΠΈΠΏ ΡΠ΅ ΡΠΎΠ²ΠΏΠ°ΡΠ°Π°Ρ ΡΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° (ΠΈ, ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ Π½ΠΈΠ²Π½ΠΎΡΠΎ ΠΏΠΎΡΡΠΎΠ΅ΡΠ΅). ΠΠ΅Π½Π΅ΡΠ°Π»Π½ΠΎ, ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΊΠ°ΠΆΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Π½ΠΈ ΡΡΠ°Π²Π°Π°Ρ Π½Π° ΡΠ°ΡΠΏΠΎΠ»Π°Π³Π°ΡΠ΅ Π½Π΅ΡΡΠΎ ΠΊΠ°ΠΊΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°.
Π£ΠΏΠΎΡΡΠ΅Π±Π°ΡΠ° Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠΌΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ, ΠΈ ΡΠΈΠ΅ ΡΠ΅ Π²Π΅ΡΠ΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π½Π΅ΡΡΠΈΠ²ΠΈΡΠ°Π»Π½ΠΈ:
- Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ Π½Π΅ΠΊΠΎΠΈ ΠΌΠ°Π»ΠΈ (ΠΈ Π½Π΅ ΡΠΎΠ»ΠΊΡ ΠΌΠ°Π»ΠΈ) Π³ΡΠ΅ΡΠΊΠΈ. Π’ΠΈΠΏΠΈΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Π΅ ΠΊΠΎΠ³Π° Π·Π°Π±ΠΎΡΠ°Π²Π°Π°Ρ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Ρ Π²ΡΠ΅Π΄Π½ΠΎΡΡ
None
ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠ° Π΄ΡΡΠ³Π° ΠΏΠΎΡΠ΅Π±Π½Π° ΡΠΎΡΡΠΎΡΠ±Π°. - Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π΅ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ΠΎ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ ΡΠ΅ΡΡΠΎΠΏΠ°ΡΠΈ Π΅ ΠΌΠ½ΠΎΠ³Ρ ΡΠΎΡΠ΅Π½ Π·Π° ΡΠΎΠ° ΠΊΠΎΡ ΠΊΠΎΠ΄ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ ΡΠΌΠ΅Π½ΠΈ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π½Π°Π΄Π΅Π²Π°ΠΌΠ΅ Π½Π° 100% ΠΏΠΎΠΊΡΠΈΠ΅Π½ΠΎΡΡ Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΡΠΎ ΡΠ΅ΡΡΠΎΠ²ΠΈ, ΡΡΠΎ, Π²ΠΎ ΡΠ΅ΠΊΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΎΠ±ΠΈΡΠ½ΠΎ Π½Π΅ Π΅ ΠΈΠ·Π²ΠΎΠ΄Π»ΠΈΠ²ΠΎ. ΠΠ΅ ΡΡΠ΅Π±Π° Π΄Π° ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΠΌΠ΅ Π²ΠΎ Π΄Π»Π°Π±ΠΎΡΠΈΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠ°Π³Π°ΡΠ° Π½Π° ΠΎΡΠ°ΠΊΠΎΡ Π·Π° Π΄Π° ΡΠ° ΠΎΡΠΊΡΠΈΠ΅ΠΌΠ΅ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΡ.
- ΠΡΡΠΈ ΠΈ Π½Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ, mypy ΡΠ΅ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΠ΅Π»ΠΎΡΠ½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π²ΠΎ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅ΠΊΡΠ½Π΄Π°ΡΠ°. Π ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΎΠ²ΠΈΡΠ΅ ΠΎΠ±ΠΈΡΠ½ΠΎ ΡΡΠ°Π΅ Π΄Π΅ΡΠ΅ΡΠΈΡΠΈ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈΠ»ΠΈ Π΄ΡΡΠΈ ΠΌΠΈΠ½ΡΡΠΈ. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ ΠΌΡ Π΄Π°Π²Π° ΠΈΠ½ΡΡΠ°Π½Ρ ΠΏΠΎΠ²ΡΠ°ΡΠ½ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΎΡ ΠΈ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΠΏΠΎΠ±ΡΠ·ΠΎ Π΄Π° ΡΠ° Π²ΡΡΠΈ ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. Π’ΠΎΡ ΠΏΠΎΠ²Π΅ΡΠ΅ Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° ΠΏΠΈΡΡΠ²Π° ΠΊΡΠ΅Π²ΠΊΠΈ ΠΈ ΡΠ΅ΡΠΊΠΈ Π·Π° ΠΎΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ Π΅Π΄ΠΈΠ½Π΅ΡΠ½ΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΈ ΠΊΠΎΠΈ Π³ΠΈ Π·Π°ΠΌΠ΅Π½ΡΠ²Π°Π°Ρ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈΡΠ΅ Π΅Π½ΡΠΈΡΠ΅ΡΠΈ ΡΠΎ ΠΏΠΎΡΡΠΌΠ΅Π²ΠΊΠΈ ΠΈ Π·Π°ΠΊΡΠΏΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΠΏΠΎΠ±ΡΠ·ΠΎ Π΄Π° Π³ΠΈ Π΄ΠΎΠ±ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΠ΄ ΡΠ΅ΡΡΠΎΡ Π½Π° ΠΊΠΎΠ΄ΠΎΡ.
IDE-ΠΈΡΠ΅ ΠΈ ΡΡΠ΅Π΄Π½ΠΈΡΠΈΡΠ΅ ΠΊΠ°ΠΊΠΎ PyCharm ΠΈΠ»ΠΈ Visual Studio Code ΡΠ° ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΌΠΎΡΡΠ° Π½Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° Π΄Π° ΠΈΠΌ ΠΎΠ±Π΅Π·Π±Π΅Π΄Π°Ρ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠ»Π΅ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ, ΠΈΡΡΠ°ΠΊΠ½ΡΠ²Π°ΡΠ΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° Π½Π°ΡΡΠ΅ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡΠ΅ ΡΠ°Π·ΠΈΡΠ½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ. Π ΠΎΠ²Π° ΡΠ΅ ΡΠ°ΠΌΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡΠ΅ ΠΎΠ΄ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠ° Π½Π΅ΠΊΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈ, ΡΠ΅ΡΠΎ ΠΎΠ²Π° Π΅ Π³Π»Π°Π²Π½ΠΈΠΎΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π²ΠΎ ΠΊΠΎΡΠΈΡΡ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ. ΠΠ²Π° Π΅ Π½Π΅ΡΡΠΎ ΡΡΠΎ ΠΈΠΌΠ° ΠΊΠΎΡΠΈΡΡ Π²Π΅Π΄Π½Π°Ρ ΠΏΠΎ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ°ΡΠ°. ΠΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ Π½Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π΅ Π±Π°ΡΠ° ΠΏΠΎΡΠ΅Π±Π΅Π½ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ mypy, ΠΈΠ°ΠΊΠΎ ΡΡΠ΅Π±Π° Π΄Π° ΡΠ΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠΈ Π΄Π΅ΠΊΠ° mypy ΠΏΠΎΠΌΠ°Π³Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΠΊΠΎΠ½Π·ΠΈΡΡΠ΅Π½ΡΠ½ΠΈ ΡΠΎ ΠΊΠΎΠ΄ΠΎΡ.
ΠΠΎΠ·Π°Π΄ΠΈΠ½Π° Π½Π° mypy
ΠΡΡΠΎΡΠΈΡΠ°ΡΠ° Π½Π° mypy Π·Π°ΠΏΠΎΡΠ½Π° Π²ΠΎ ΠΠ, Π²ΠΎ ΠΠ΅ΠΌΠ±ΡΠΈΡ, Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π³ΠΎΠ΄ΠΈΠ½ΠΈ ΠΏΡΠ΅Π΄ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ°ΠΌ Π½Π° Dropbox. ΠΠΊΠ»ΡΡΠ΅Π½ ΡΡΠΌ, ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ ΠΌΠΎΠ΅ΡΠΎ Π΄ΠΎΠΊΡΠΎΡΡΠΊΠΎ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅, Π²ΠΎ ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΡΡΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΊΠΈ ΡΠ°Π·ΠΈΡΠΈ. ΠΠ΅Π² ΠΈΠ½ΡΠΏΠΈΡΠΈΡΠ°Π½ ΠΎΠ΄ Π΅Π΄Π½Π° ΡΡΠ°ΡΠΈΡΠ° Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΎΠ΄ ΠΠ΅ΡΠ΅ΠΌΠΈ Π‘ΠΈΠ΅ΠΊ ΠΈ ΠΠ°Π»ΠΈΠ΄ Π’Π°Ρ Π°, ΠΈ ΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ βΠ’ΠΈΡΠ°Π½ ΡΠ΅ΠΊΠ΅Ρβ. Π‘Π΅ ΠΎΠ±ΠΈΠ΄ΠΎΠ² Π΄Π° Π½Π°ΡΠ΄Π°ΠΌ Π½Π°ΡΠΈΠ½ΠΈ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ°ΠΌ ΠΈΡΡΠΈΠΎΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈ ΡΠ°Π·ΠΈΠΊ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ - ΠΎΠ΄ ΠΌΠ°Π»ΠΈ ΡΠΊΡΠΈΠΏΡΠΈ Π΄ΠΎ Π±Π°Π·ΠΈ Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΡΡΠΎ ΡΠ΅ ΡΠΎΡΡΠΎΡΠ°Ρ ΠΎΠ΄ ΠΌΠ½ΠΎΠ³Ρ ΠΌΠΈΠ»ΠΈΠΎΠ½ΠΈ Π»ΠΈΠ½ΠΈΠΈ. ΠΠΎ ΠΈΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅, ΡΠ°ΠΊΠ°Π² Π΄Π° ΡΠ΅ ΠΎΡΠΈΠ³ΡΡΠ°ΠΌ Π΄Π΅ΠΊΠ° Π²ΠΎ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΠ΄ ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΎΠ±Π΅ΠΌ, ΡΠΎΠ²Π΅ΠΊ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΡΠ° Π΄Π° ΠΏΡΠ°Π²ΠΈ ΠΏΡΠ΅Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ. ΠΠ°ΠΆΠ΅Π½ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅ΡΠΎ ΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΈΠ΄Π΅ΡΠ°ΡΠ° Π·Π° ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½ΡΠ²Π°ΡΠ΅ ΠΎΠ΄ Π½Π΅Π²ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡ ΠΊΠΎΠ½ ΡΠ΅ΠΎΠΏΡΠ°ΡΠ½ΠΎ ΡΠ΅ΡΡΠΈΡΠ°Π½ ΡΡΠ°ΡΠΈΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠ°Π½ Π³ΠΎΡΠΎΠ² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄. ΠΠ΅Π½ΠΎΠ²ΠΈΠ²Π΅ ΠΎΠ²ΠΈΠ΅ ΠΈΠ΄Π΅ΠΈ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΡΠ΅ Π·Π΅ΠΌΠ°Π°Ρ Π·Π΄ΡΠ°Π²ΠΎ Π·Π° Π³ΠΎΡΠΎΠ²ΠΎ, Π½ΠΎ Π²ΠΎ 2010 Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠΎΠ° Π±Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΊΠΎΡ ΡΓ¨ ΡΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅.
ΠΠΎΡΠ°ΡΠ° ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½Π° ΡΠ°Π±ΠΎΡΠ° Π²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΡΠΎΡΠ΅Π½Π° ΠΊΠΎΠ½ ΠΠ°ΡΡΠΎΠ½. ΠΠ°ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ°, ΠΊΠΎΡΠΈΡΡΠ΅Π² ΠΌΠ°Π» βΠ΄ΠΎΠΌΠ°ΡΠ΅Π½β ΡΠ°Π·ΠΈΠΊ
def Fib(n as Int) as Int
if n <= 1
return n
else
return Fib(n - 1) + Fib(n - 2)
end
end
ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΠΌΠ°ΡΡΠΈΠ½ ΡΠ°Π·ΠΈΠΊ Π΅ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ Π½Π°ΡΡΠ½ΠΎΡΠΎ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅. ΠΠ²Π° Π΅ ΡΠ°ΠΊΠ°, Π½Π΅ ΡΠ°ΠΌΠΎ Π·Π°ΡΠΎΠ° ΡΡΠΎ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π±ΡΠ·ΠΎ Π΄Π° ΡΠΏΡΠΎΠ²Π΅Π΄Π΅ΡΠ΅ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈ, Π° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠΎΡ ΡΡΠΎ ΠΎΠ½Π° ΡΡΠΎ Π½Π΅ΠΌΠ° Π½ΠΈΠΊΠ°ΠΊΠ²Π° Π²ΡΡΠΊΠ° ΡΠΎ ΡΡΡΠ΄ΠΈΡΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΠ°. ΠΡΠΎΠ³ΡΠ°ΠΌΡΠΊΠΈΡΠ΅ ΡΠ°Π·ΠΈΡΠΈ Π²ΠΎ ΡΠ΅Π°Π»Π½ΠΈΠΎΡ ΡΠ²Π΅Ρ ΠΈΠΌΠ°Π°Ρ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡΠ° Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ΅Π½ΠΎΠΌΠ΅Π½ΠΈ ΠΎΠ΄ Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΈ ΡΠΎ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, Π° ΡΠΎΠ° Π³ΠΎ Π·Π°Π±Π°Π²ΡΠ²Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ΡΠΎ. Π‘Π΅ΠΏΠ°ΠΊ, ΡΠΈΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° ΠΏΠΎΠ΅Π΄Π½ΠΎΡΡΠ°Π²Π΅Π½ ΡΠ°Π·ΠΈΠΊ ΠΈΠ·Π³Π»Π΅Π΄Π°Π°Ρ ΠΌΠ°Π»ΠΊΡ ΡΠΎΠΌΠ½ΠΈΡΠ΅Π»Π½ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΏΡΠΈ Π΄ΠΎΠ±ΠΈΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΠΎΠ²ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Π±ΠΈ ΠΆΡΡΠ²ΡΠ²Π°Π» ΡΠ°Π·ΠΌΠΈΡΠ»ΡΠ²Π°ΡΠ° Π²Π°ΠΆΠ½ΠΈ Π·Π° ΠΏΡΠ°ΠΊΡΠΈΡΠ½Π°ΡΠ° ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΡΠ°Π·ΠΈΡΠΈΡΠ΅.
ΠΠΎΡΠ°ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° Alore ΠΈΠ·Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³Ρ Π²Π΅ΡΡΠ²Π°ΡΠΊΠ°, Π½ΠΎ ΡΠ°ΠΊΠ°Π² Π΄Π° ΡΠ° ΡΠ΅ΡΡΠΈΡΠ°ΠΌ ΡΠΎ Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ ΡΠΎ Π²ΠΈΡΡΠΈΠ½ΡΠΊΠΈ ΠΊΠΎΠ΄, ΠΊΠΎΡ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠ°ΠΆΠ΅, Π½Π΅ Π±Π΅ΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Alore. ΠΠ° ΠΌΠΎΡΠ° ΡΡΠ΅ΡΠ°, ΡΠ°Π·ΠΈΠΊΠΎΡ Alore Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π°ΡΠ΅ Π½Π° ΠΈΡΡΠΈΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΊΠ°ΠΊΠΎ ΠΈ Python. ΠΠ΅ΡΠ΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π»Π΅ΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈ ΠΌΠ°ΡΠΈΠ½Π°ΡΠ° Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ° ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΠΊΠ°ΡΠ° Π½Π° ΠΠ°ΡΡΠΎΠ½. ΠΠ²Π° Π½ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΠΏΡΠΎΠ±Π°ΠΌΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° Python ΡΠΎ ΠΎΡΠ²ΠΎΡΠ΅Π½ ΠΊΠΎΠ΄. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π² ΡΡΠ°Π½ΡΠΏΠ°ΡΠ»Π΅Ρ Π·Π° ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ΄ΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Alore Π²ΠΎ ΠΊΠΎΠ΄ Π½Π° Python ΠΈ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ΅Π² Π·Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅Π²Π΅Π΄Π°ΠΌ ΠΌΠΎΡΠΎΡ ΠΊΠΎΠ΄ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ. Π‘Π΅Π³Π° ΠΈΠΌΠ°Π² ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ Π½Π°ΠΏΠΈΡΠ°Π½ Π²ΠΎ Python ΠΊΠΎΡ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π½Π° Python, Π½Π΅ΠΊΠΎΡ Π²ΠΈΠ΄ Π½Π° ΡΠΎΡ ΡΠ°Π·ΠΈΠΊ! (ΠΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΠ½ΡΠΊΠΈ ΠΎΠ΄Π»ΡΠΊΠΈ ΠΊΠΎΠΈ ΠΈΠΌΠ°Π° ΡΠΌΠΈΡΠ»Π° Π·Π° Alore Π±Π΅Π° ΡΠ»Π°Π±ΠΎ ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄Π΅Π½ΠΈ Π·Π° Python, ΠΈ ΡΠΎΠ° ΡΓ¨ ΡΡΡΠ΅ Π΅ Π·Π°Π±Π΅Π»Π΅ΠΆΠ»ΠΈΠ²ΠΎ Π²ΠΎ Π΄Π΅Π»ΠΎΠ²ΠΈ ΠΎΠ΄ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΈ mypy.)
ΠΡΡΡΠ½ΠΎΡΡ, ΡΠ°Π·ΠΈΠΊΠΎΡ ΠΏΠΎΠ΄Π΄ΡΠΆΠ°Π½ ΠΎΠ΄ ΠΌΠΎΡΠΎΡ ΡΠΈΠΏΡΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌ Π²ΠΎ ΠΎΠ²ΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΡΠ΅ΠΌΠ° Π΄Π° ΡΠ΅ Π½Π°ΡΠ΅ΡΠ΅ Python: ΡΠΎΡ Π±Π΅ΡΠ΅ Π²Π°ΡΠΈΡΠ°Π½ΡΠ° Π½Π° Python ΠΏΠΎΡΠ°Π΄ΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ° Π·Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ ΠΎΠ΄ ΡΠΈΠΏΠΎΡ Python 3.
ΠΠ·Π³Π»Π΅Π΄Π°ΡΠ΅ ΠΊΠ°ΠΊΠΎ ΠΌΠ΅ΡΠ°Π²ΠΈΠ½Π° ΠΎΠ΄ Java ΠΈ Python:
int fib(int n):
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
ΠΠ΄Π½Π° ΠΎΠ΄ ΠΌΠΎΠΈΡΠ΅ ΠΈΠ΄Π΅ΠΈ Π²ΠΎ ΡΠΎΠ° Π²ΡΠ΅ΠΌΠ΅ Π±Π΅ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°ΠΌ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° Π΄Π° Π³ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°ΠΌ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΡΠ»ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΎΠ²ΠΎΡ Π²ΠΈΠ΄ Python Π²ΠΎ C, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Π±ΠΈ JVM Π±Π°ΡΡΠ΅ΠΊΠΎΠ΄. Π‘ΡΠΈΠ³Π½Π°Π² Π΄ΠΎ ΡΠ°Π·Π° Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏ Π½Π° ΠΊΠΎΠΌΠΏΠ°ΡΠ»Π΅ΡΠΎΡ, Π½ΠΎ ΡΠ° Π½Π°ΠΏΡΡΡΠΈΠ² ΠΎΠ²Π°Π° ΠΈΠ΄Π΅ΡΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠ°ΠΌΠΎΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠΎΡ ΠΈΠ·Π³Π»Π΅Π΄Π°ΡΠ΅ Π΄ΠΎΡΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΎ.
ΠΠ° ΠΊΡΠ°ΡΠΎΡ Π³ΠΎ ΠΏΡΠ΅Π·Π΅Π½ΡΠΈΡΠ°Π² ΠΌΠΎΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° PyCon 2013 Π²ΠΎ Π‘Π°Π½ΡΠ° ΠΠ»Π°ΡΠ°. ΠΠ±ΠΎΡΡΠ²Π°Π² Π·Π° ΠΎΠ²Π° ΠΈ ΡΠΎ ΠΠ²ΠΈΠ΄ΠΎ Π²Π°Π½ Π ΠΎΡΡΠΌ, Π΄ΠΎΠ±ΡΠΎΠ½Π°ΠΌΠ΅ΡΠ½ΠΈΠΎΡ Π΄ΠΈΠΊΡΠ°ΡΠΎΡ Π½Π° ΠΠ°ΡΡΠΎΠ½ Π΄ΠΎΠΆΠΈΠ²ΠΎΡΠ½ΠΎ. Π’ΠΎΡ ΠΌΠ΅ ΡΠ±Π΅Π΄ΠΈ Π΄Π° ΡΠ° ΠΎΡΡΡΠ»Π°ΠΌ ΡΠΎΠΏΡΡΠ²Π΅Π½Π°ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠ΄ΡΠΆΡΠ²Π°ΠΌ Π΄ΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π°ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° Π½Π° Python 3. Python 3 ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΌΠΎΡΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΡΠ°Π±ΠΎΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ»Ρ, ΡΡΠΎ ΡΠ΅Π·ΡΠ»ΡΠΈΡΠ° ΡΠΎ Π½ΠΎΡΠΌΠ°Π»Π½Π° Python ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°:
def fib(n: int) -> int:
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
ΠΠΎΡΠ°Π² Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°ΠΌ Π½Π΅ΠΊΠΎΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ (Π½Π°ΡΠΏΡΠ²ΠΎ, ΡΠ°ΠΊΠ°ΠΌ Π΄Π° Π·Π°Π±Π΅Π»Π΅ΠΆΠ°ΠΌ Π΄Π΅ΠΊΠ° ΠΈΠ·ΠΌΠΈΡΠ»ΠΈΠ² ΡΠΎΠΏΡΡΠ²Π΅Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ° ΡΠΎΠΊΠΌΡ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΎΠ²Π°Π° ΠΏΡΠΈΡΠΈΠ½Π°). ΠΡΠΎΠ±Π΅Π½ΠΎ, Python 3.3, Π½Π°ΡΠ½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΡΠ°Π·ΠΈΠΊΠΎΡ Π²ΠΎ ΡΠΎΠ° Π²ΡΠ΅ΠΌΠ΅, Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π°ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ. Π Π°Π·Π³ΠΎΠ²Π°ΡΠ°Π² ΡΠΎ ΠΠ²ΠΈΠ΄ΠΎ ΠΏΡΠ΅ΠΊΡ Π΅-ΠΏΠΎΡΡΠ° Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΊΠΎ Π΄ΠΈΠ·Π°ΡΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ. Π Π΅ΡΠΈΠ²ΠΌΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ Π·Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ. ΠΠ²Π° ΡΠ° ΠΏΠΎΡΠ»ΡΠΆΠΈ Π½Π°ΠΌΠ΅Π½Π°ΡΠ°, Π½ΠΎ Π±Π΅ΡΠ΅ Π΄ΠΎΠ½Π΅ΠΊΠ°Π΄Π΅ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΎ (Python 3.6 Π½ΠΈ Π΄Π°Π΄Π΅ ΠΏΠΎΡΠ±Π°Π²Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ°):
products = [] # type: List[str] # Eww
ΠΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ΅ Π·Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π΅Π° ΠΊΠΎΡΠΈΡΠ½ΠΈ Π·Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π½Π° Python 2, ΠΊΠΎΡ Π½Π΅ΠΌΠ° Π²Π³ΡΠ°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΊΠ° Π·Π° ΠΏΡΠΈΠ±Π΅Π»Π΅ΡΠΊΠΈ Π·Π° ΡΠΈΠΏΠΎΠ²ΠΈ:
f fib(n):
# type: (int) -> int
if n <= 1:
return n
else:
return fib(n - 1) + fib(n - 2)
Π‘Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ° Π΄Π΅ΠΊΠ° ΠΎΠ²ΠΈΠ΅ (ΠΈ Π΄ΡΡΠ³ΠΈ) ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΠΈ Π½Π΅ ΡΠ΅ Π½Π°Π²ΠΈΡΡΠΈΠ½Π° Π²Π°ΠΆΠ½ΠΈ - ΠΏΡΠΈΠ΄ΠΎΠ±ΠΈΠ²ΠΊΠΈΡΠ΅ ΠΎΠ΄ ΡΡΠ°ΡΠΈΡΠΊΠΎΡΠΎ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ Π·Π½Π°ΡΠ΅Π° Π΄Π΅ΠΊΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π°ΡΠΊΠΎΡΠΎ Π·Π°Π±ΠΎΡΠ°Π²ΠΈΡΠ° Π½Π° ΠΏΠΎΠΌΠ°Π»ΠΊΡ ΠΎΠ΄ ΠΈΠ΄Π΅Π°Π»Π½Π°ΡΠ° ΡΠΈΠ½ΡΠ°ΠΊΡΠ°. ΠΠΈΠ΄Π΅ΡΡΠΈ Π½Π΅ Π±Π΅Π° ΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΎ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° Python, ΠΏΠΎΡΡΠΎΠ΅ΡΠΊΠΈΡΠ΅ Python Π°Π»Π°ΡΠΊΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΡ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠ°Ρ Π½ΠΎΡΠΌΠ°Π»Π½ΠΎ, ΡΡΠΎ ΠΈΠΌ ΠΎΠ»Π΅ΡΠ½ΡΠ²Π° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ΅ΡΠΈΡΠ΅ Π΄Π° ΡΠ° Π½Π°ΡΡΠ°Ρ Π½ΠΎΠ²Π°ΡΠ° Π°Π»Π°ΡΠΊΠ°.
ΠΠ²ΠΈΠ΄ΠΎ, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΌΠ΅ ΡΠ±Π΅Π΄ΠΈ Π΄Π° ΡΠ΅ ΠΏΡΠΈΠΊΠ»ΡΡΠ°ΠΌ Π½Π° Dropbox ΠΎΡΠΊΠ°ΠΊΠΎ Π³ΠΎ Π·Π°Π²ΡΡΠΈΠ² ΠΌΠΎΡΠΎΡ Π΄ΠΈΠΏΠ»ΠΎΠΌΡΠΊΠΈ ΡΡΡΠ΄. Π’ΡΠΊΠ° Π·Π°ΠΏΠΎΡΠ½ΡΠ²Π° Π½Π°ΡΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈΠΎΡ Π΄Π΅Π» ΠΎΠ΄ ΠΏΡΠΈΠΊΠ°Π·Π½Π°ΡΠ° Π·Π° mypy.
ΠΠ° ΡΠ΅ ββΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈ ...
ΠΠΎΡΠΈΡΡΠ²Π°Π½ΠΈ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠΊΠΎ ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ Python, ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π½ΠΈ Π·Π° ΠΎΠ±Π΅ΠΌΠΎΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΡΠΎ Π³ΠΈ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ²ΠΎΡ ΡΠ°Π·ΠΈΠΊ.
ΠΠ·Π²ΠΎΡ: www.habr.com