Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΌΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΡΠ΅ΠΌΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ°ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π° ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊ Π² Dropbox Π·Π°Π½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅ΠΌ ΡΠΈΠΏΠΎΠ² Python-ΠΊΠΎΠ΄Π°.
Π Dropbox ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΈΡΡΡ Π½Π° Python. ΠΡΠΎ β ΡΠ·ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΠΈΡΠΎΠΊΠΎ β ΠΊΠ°ΠΊ Π΄Π»Ρ Π±ΡΠΊΠ΅Π½Π΄-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ², ΡΠ°ΠΊ ΠΈ Π΄Π»Ρ Π½Π°ΡΡΠΎΠ»ΡΠ½ΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΡ ΠΌΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΎΠ±ΡΡΠΌΠ°Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ Go, TypeScript ΠΈ Rust, Π½ΠΎ Python β ΡΡΠΎ Π½Π°Ρ Π³Π»Π°Π²Π½ΡΠΉ ΡΠ·ΡΠΊ. ΠΡΠ»ΠΈ ΡΡΠΈΡΡΠ²Π°ΡΡ Π½Π°ΡΠΈ ΠΌΠ°ΡΡΡΠ°Π±Ρ, Π° ΡΠ΅ΡΡ ΠΈΠ΄ΡΡ ΠΎ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½Π°Ρ ΡΡΡΠΎΠΊ 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. Π― Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π΄ΠΎΠΊΡΠΎΡΡΠΊΠΎΠ³ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ·ΡΠΊΠΎΠ². ΠΠ΅Π½Ρ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π»ΡΠ»Π° ΡΡΠ°ΡΡΡ ΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ ΠΠΆΠ΅ΡΠ΅ΠΌΠΈ Π‘ΠΈΠ΅ΠΊΠ° ΠΈ ΠΠ°Π»ΠΈΠ΄Π° Π’Π°Ρ Π°, Π° ΡΠ°ΠΊ ΠΆΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ Typed Racket. Π― ΠΏΡΡΠ°Π»ΡΡ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² β ΠΎΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ², Π΄ΠΎ ΠΊΠΎΠ΄ΠΎΠ²ΡΡ Π±Π°Π·, ΡΠΎΡΡΠΎΡΡΠΈΡ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΌΠΈΠ»Π»ΠΈΠΎΠ½ΠΎΠ² ΡΡΡΠΎΠΊ. ΠΡΠΈ ΡΡΠΎΠΌ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ, ΡΡΠΎΠ±Ρ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π° Π½Π΅ ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ ΠΈΠ΄ΡΠΈ Π½Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ. ΠΠ°ΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ Π²ΡΠ΅Π³ΠΎ ΡΡΠΎΠ³ΠΎ Π±ΡΠ»Π° ΠΈΠ΄Π΅Ρ ΠΎ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π΅ ΠΎΡ Π½Π΅ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊ Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ Π³ΠΎΡΠΎΠ²ΠΎΠΌΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ. Π Π½Π°ΡΠΈ Π΄Π½ΠΈ ΡΡΠΈ ΠΈΠ΄Π΅ΠΈ, Π² Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ½ΠΎΠ΅, Π½ΠΎ Π² 2010 Π³ΠΎΠ΄Ρ ΡΡΠΎ Π±ΡΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡ Π΅ΡΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π»ΠΈ.
ΠΠΎΡ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π½Π΅ Π±ΡΠ»Π° Π½Π°ΡΠ΅Π»Π΅Π½Π° Π½Π° Python. ΠΠΌΠ΅ΡΡΠΎ Π½Π΅Π³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΉ Β«ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΠΉΒ» ΡΠ·ΡΠΊ
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. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ ΡΠΈΠΏΠΎΠ² Π² ΠΎΠΏΠ΅Π½ΡΠΎΡΡΠ½ΠΎΠΌ 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. ΠΠ½ ΡΠ±Π΅Π΄ΠΈΠ» ΠΌΠ΅Π½Ρ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ ΠΎΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° ΠΈ ΠΏΡΠΈΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° 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 β ΠΏΡΠΎΡΠΈΠΌ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ ΠΌΠ°ΡΡΡΠ°Π±Π° Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅ Π½Π° ΡΡΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com