ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π² Python: ΠΏΠΎΠ½ΡΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ±ΠΈΡΡ
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π² Python β ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π²Π΅ΡΡ, Π½ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½ΠΎΠ²ΠΈΡΠΊΠΈ Π΅Ρ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ΡΡ ΡΡΠΎΡΠΎΠ½ΠΎΠΉ. ΠΠ±ΡΡΡΠ½ΡΠ΅ΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΈ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π² Python, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΎΠ²ΠΈΡΠΊΠ°ΠΌ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ ΡΠΆΠ΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Ρ Π½ΠΈΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Flask, Π½ΠΎ Π½Π΅ Ρ ΠΎΡΠ΅Π»ΠΈ ΠΎΡΠΎΠ±ΠΎ Π²Π½ΠΈΠΊΠ°ΡΡ Π² ΡΡΡΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΡΠ΅ΠΌ ΡΠ²Π»ΡΡΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ?
ΠΠΎΠ²ΠΈΡΠΊΠ°ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΈ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌΠΈ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΈ Π²ΡΡ ΠΎΠ΄ΡΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ Β«ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎΒ» ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ°ΠΊ Π² Π‘ΠΈ, Π³Π΄Π΅ Π²Ρ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π°, ΠΈ Π²ΡΠ·ΡΠ²Π°Π΅ΡΠ΅ ΠΈΡ . Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, Π³Π΄Π΅ Π²Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ Π½Π° ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌ ΠΈ ΠΈΡΡ ΠΎΠ΄ΡΡ ΠΈΠ· ΠΎΠ±Π»Π°ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π·Π°Π±Π΅Π³Π°ΡΡ Π²ΠΏΠ΅ΡΡΠ΄, ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ ΡΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π±Π΅Π· Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Ρ ΠΊΠΎΠ΄Π°. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΡΠ°ΠΊΡΠΈΠΊΡ ΠΌΠ΅ΡΠ°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ ΠΊΠ°ΠΊ ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ½Π°ΡΠ°Π»Π° ΡΠ°Π·Π±Π΅ΡΡΠΌΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python.
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ? ΠΠ΅ Π±ΡΠ΄ΡΡΠ΅ ΡΡΠΎΠ»Ρ ΡΠ²Π΅ΡΠ΅Π½Ρ Π² ΡΡΠΎΠΌ. Π£ ΡΡΠ½ΠΊΡΠΈΠΉ Python Π΅ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΡ Π½Π΅ΡΠ°ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ, ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΎΠ½ΠΈ Π·Π°Π±ΡΠ²Π°ΡΡΡΡ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΡΡΠ½ΠΈΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Python.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ
Π‘ ΡΡΠΈΠΌ Π°ΡΠΏΠ΅ΠΊΡΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΌΡ Π·Π½Π°ΠΊΠΎΠΌΡ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΡΠΎΡΠ΅Π΄ΡΡΠ° β ΡΡΠΎ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ°Π³ΠΎΠ². ΠΡΠ±ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·Π²Π°ΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΉ ΡΠ΅Π±Ρ. ΠΠΎ ΡΡΠΎΠΉ ΡΠ°ΡΡΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ΡΠ΅Π³ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π°ΡΠΏΠ΅ΠΊΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python.
Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°
Π Python Π²ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΡΠΎΠ·Π΄Π°ΡΡΠ΅ ΠΈΠ· ΠΊΠ»Π°ΡΡΠΎΠ². Π ΡΡΠΎΠΌ ΡΠΌΡΡΠ»Π΅ ΠΎΠ½ (Python) ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠ΄Π΅ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ Π² Python Π²ΡΡ ΡΡΠΎ β ΠΎΠ±ΡΠ΅ΠΊΡΡ:
- ΡΠΈΡΠ»Π°;
- ΡΡΡΠΎΠΊΠΈ;
- ΠΊΠ»Π°ΡΡΡ (Π΄Π°, Π΄Π°ΠΆΠ΅ ΠΊΠ»Π°ΡΡΡ!);
- ΡΡΠ½ΠΊΡΠΈΠΈ (ΡΠΎ, ΡΡΠΎ Π½Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ).
Π’ΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π²ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΠΌΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ. ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠΎΠΆΠ½ΠΎ Π΄Π°ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΡΡΠ½ΠΊΡΠΈΡ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΎΠΉ. ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΠ½ΠΊΡΠΈΠΈ β ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°. ΠΠ· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π² ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ:
ΠΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ Π²ΡΡ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Ρ Π»ΡΠ±ΡΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ: ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
Π ΡΡΡ Π² Π΄Π΅Π»ΠΎ Π²ΡΡΡΠΏΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π° Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ β Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ β ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ²
Π Python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΈΠ· ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π²ΡΠΎΠ΄Π΅ Haskell ΠΈ OCaml. ΠΡΠΎΠΏΡΡΡΠΈΠΌ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° ΠΈ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΠΌ ΠΊ Π΄Π²ΡΠΌ Π΅Π³ΠΎ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠ°ΠΌ, ΡΠ²ΠΎΠΉΡΡΠ²Π΅Π½Π½ΡΠΌ Python:
- ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°;
- ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΡΠ·ΡΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ².
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΡΡΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π²ΡΠΎΠ΄Π΅ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΡ ΡΡΡΠ΅ΠΊΡΠΎΠ², Π½ΠΎ ΠΌΡ Π·Π΄Π΅ΡΡ Π½Π΅ Π·Π° ΡΡΠΈΠΌ. ΠΡΡΡΠ΅ ΡΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΌ β ΡΡΠ½ΠΊΡΠΈΡΡ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ². Π§ΡΠΎ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°? Π‘Π½ΠΎΠ²Π° ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΡ ΠΊ ΠΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ:
Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ² β ΡΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ»ΠΈ Π²Ρ Π·Π½Π°ΠΊΠΎΠΌΡ Ρ ΠΎΡΠ½ΠΎΠ²Π°ΠΌΠΈ Π²ΡΡΡΠ΅ΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ, ΡΠΎ Π²Ρ ΡΠΆΠ΅ Π·Π½Π°Π΅ΡΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ² ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΠΎΠ΄Π΅ Π΄ΠΈΡΡΠ΅ΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° d/dx. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΡΡΠ½ΠΊΡΠΈΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΡ ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ. Π€ΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ² Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠΎΡΠ½ΠΎ ΡΠ°ΠΊ ΠΆΠ΅ β ΠΎΠ½ΠΈ Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ(ΠΈ) Π½Π° Π²Ρ ΠΎΠ΄Π΅ ΠΈ/ΠΈΠ»ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ(ΠΈ).
ΠΠ°ΡΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²
Π Π°Π· ΡΠΆ ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ Π°ΡΠΏΠ΅ΠΊΡΠ°ΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ ΠΈΡ Π² ΠΊΠΎΠ΄Π΅:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ· ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΊΠΎΠ΄Π° Π΄Π°Π»Π΅Π΅ Π²Ρ ΡΠ²ΠΈΠ΄ΠΈΡΠ΅, ΡΡΠΎ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠ°ΠΊ ΠΈ ΠΊΠ»Π°ΡΡΡ Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Π² Python:
ΠΠ°ΠΊ Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ, ΡΡΠ½ΠΊΡΠΈΡ hello_worldΒ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΡΠΈΠΏΡ <class 'function'>. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ°Β function. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ»Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊΠ»Π°ΡΡΡΒ type. ΠΡ ΡΡΠΎΠ³ΠΎ Π²ΡΠ΅Π³ΠΎ Π³ΠΎΠ»ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΉΡΠΈ ΠΊΡΡΠ³ΠΎΠΌ, Π½ΠΎ ΡΡΡΡ ΠΏΠΎΠΈΠ³ΡΠ°Π²ΡΠΈΡΡ Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ type Π²Ρ ΡΠΎ Π²ΡΠ΅ΠΌ ΡΠ°Π·Π±Π΅ΡΡΡΠ΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°.
ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ :
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΡ ΠΈΠ· Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ:
ΠΠ· ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°ΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π² Python Π³ΠΈΠ±ΠΊΠΈΠ΅. Π‘ ΡΡΡΡΠΎΠΌ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².
ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
ΠΠΎΠ²ΡΠΎΡΠΈΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°:
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ β ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠ½ΡΡΡ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ Π±Π΅Π· Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π΅Ρ ΠΊΠΎΠ΄Π°.
Π Π°Π· ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΡΡΠΈΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ², ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ½ΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. Π‘Π½Π°ΡΠ°Π»Π° ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°:
ΠΠ΄Π΅ΡΡ decorator_function() ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ-Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠ°ΠΊ Π²Ρ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΠΎΠ½Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, Π° ΡΠ°ΠΊΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ. ΠΠ½ΡΡΡΠΈ decorator_function() ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΡΡ ΡΡΠ½ΠΊΡΠΈΡ, ΠΎΠ±ΡΡΡΠΊΡ, ΡΠ°ΠΊ ΡΠΊΠ°Π·Π°ΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΡΡΡΠ²Π°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ-Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅Ρ Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΡ ΠΎΠ±ΡΡΡΠΊΡ. Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ:
ΠΠ°Π³ΠΈΡ, Π½Π΅ ΠΈΠ½Π°ΡΠ΅! ΠΡΠΎΡΡΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΠ² @decorator_function ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΠΈ hello_world(), ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π΅Ρ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ°ΠΊ Π²Ρ ΡΠΆΠ΅ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ³Π°Π΄Π°ΡΡΡΡ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ @ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ°Ρ
Π°ΡΠΎΠΌ Π΄Π»Ρ hello_world = decorator_function(hello_world).
ΠΠ½ΡΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ @decorator_function Π²ΡΠ·ΡΠ²Π°Π΅Ρ decorator_function() Ρ hello_world Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅Ρ ΠΈΠΌΠ΅Π½ΠΈ hello_world Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ.
Π Ρ ΠΎΡΡ ΡΡΠΎΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΌΠΎΠ³ Π²ΡΠ·Π²Π°ΡΡ Π²Π°Ρ-ΡΡΡΠ΅ΠΊΡ, ΠΎΠ½ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅, Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ (Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅):
ΠΠ΄Π΅ΡΡ ΠΌΡ ΡΠΎΠ·Π΄Π°ΡΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ, Π·Π°ΠΌΠ΅ΡΡΡΡΠΈΠΉ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π΅Π³ΠΎ Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ GET-Π·Π°ΠΏΡΠΎΡ ΠΊ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΠ΅ Google. Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅ΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΌΡ ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π΅Ρ, ΡΠ½ΠΎΠ²Π° ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΈ Π²ΡΡΠΈΡΠ°Π΅ΠΌ ΠΈΠ· Π½Π΅Π³ΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅.
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
Π ΡΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²Ρ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π½Π°ΡΠ°Π»ΠΈ ΠΎΡΠΎΠ·Π½Π°Π²Π°ΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ. ΠΠ½ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±Π΅Π· ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΅Ρ ΠΊΠΎΠ΄Π° ΠΈ ΡΠ²Π»ΡΡΡΡΡ Π³ΠΈΠ±ΠΊΠΈΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
Π ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΡΡ Π²ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΈ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π»ΠΈ. ΠΠΎΠ΄ΠΈΡΠΈΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
ΠΡΠ²ΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ:
ΠΠ°ΠΊ Π²Ρ Π²ΠΈΠ΄ΠΈΡΠ΅, Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ-ΠΎΠ±ΡΡΡΠΊΠ΅, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ Ρ Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ ΠΈΡ Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠ²ΡΠ΅ Π·Π°Π±ΡΡΡ ΠΏΡΠΎ Π½ΠΈΡ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΡΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΎΠ΅. Π’ΠΎ ΠΆΠ΅ ΠΊΠ°ΡΠ°Π΅ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈΠ· Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, Ρ Π½ΠΈΠΌ ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°ΠΌΠΈ
ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ. ΠΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π»ΠΈ Π½Π°Ρ ΡΡΠ°ΡΡΠΉ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π²ΡΠΏΠΎΠ»Π½ΡΠ» Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ iters ΡΠ°Π·, Π° Π·Π°ΡΠ΅ΠΌ Π²ΡΠ²ΠΎΠ΄ΠΈΠ» ΡΡΠ΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎΠ±Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ, ΠΏΡΠΈΡΠ»ΠΎΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈΡΠΎΠ΄ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΉ Π² Python.
Π€ΡΠ½ΠΊΡΠΈΡ benchmark() Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°ΠΊΠΎΠ²ΡΠΌ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ. ΠΡΠΎ ΠΎΠ±ΡΡΠ½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ iters, Π° Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ. Π ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΎΠ½ Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ fetch_webpage(). ΠΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π½Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ @benchmark, Π° @benchmark(iters=10) β ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΡΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ benchmark() (ΡΡΠ½ΠΊΡΠΈΡ ΡΠΎ ΡΠΊΠΎΠ±ΠΊΠ°ΠΌΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π΅Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ), ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΠ°ΠΌ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ.
ΠΠ°, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡΠΈΡΡ Π² Π³ΠΎΠ»ΠΎΠ²Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π΅ΡΠΆΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ:
ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ benchmark() Π½Π΅ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠΎΠΌΡ ΡΡΠ»ΠΎΠ²ΠΈΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π½Π΅ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΡΠ½ΠΊΡΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΡΡΠ½ΠΊΡΠΈΡ actual_decorator(), ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ benchmark(), ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ.
ΠΠ±ΡΠ΅ΠΊΡΡ-Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ
ΠΠ°ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠΊ ΡΡΠΎΠΈΡ ΡΠΏΠΎΠΌΡΠ½ΡΡΡ, ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ, Π° Π»ΡΠ±ΡΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΡ ΠΊΠ»Π°ΡΡΠΎΠ²/ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ __call__() ΡΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ
ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ². ΠΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², Ρ
ΡΠ°Π½ΡΡΠΈΡ
ΠΊΠ°ΠΊΠΎΠ΅-ΡΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π΄Π»Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΠΈ:
Π‘Π°ΠΌΠΎ ΡΠΎΠ±ΠΎΠΉ, ΡΡΠΎΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π½ΡΠΆΠ΅Π½ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π² Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Π»ΡΡ , Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΊΠ΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ functools.lru_cache.
P.S.
Π’ΡΡ Π±ΡΠ΄ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π²Π΅ΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ Π·Π°ΡΡΠΎΠ½ΡΡΡ Π² ΡΡΠ°ΡΡΠ΅ ΠΈΠ»ΠΈ Π±ΡΠ»ΠΈ Π·Π°ΡΡΠΎΠ½ΡΡΡ Π²ΡΠΊΠΎΠ»ΡΠ·Ρ. ΠΠ°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°ΡΡ ΠΎΠ΄ΡΡΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΡΠ°ΡΡΠ΅ Π΄ΠΎ ΡΡΠΎΠ³ΠΎ, Π½ΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ.
- ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΡΠ±ΠΎΠΉ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ.
- ΠΠ΅ΠΊΠΎΡΠ°ΡΠΎΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΡ Ρ ΠΎΡΠΈΠΌ, ΡΡΠΎΠ±Ρ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ Π²Π΅ΡΠ½ΡΠ» ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠΈΠΏΠ°, ΡΡΠΎ ΠΈ Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ. ΠΡΠΈΠΌΠ΅Ρ:>>> def decorator(func):... return 'sumit'...>>> @decorator... def hello_world():... print('hello world')...>>> hello_world'sumit'
- Π’Π°ΠΊΠΆΠ΅ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅.
- ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎΠΉ Π΄ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡ ΠΊΠ°ΠΆΡΡΡΡ Π²Π°ΠΌ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ, ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° Π½ΠΈΡ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. Π₯ΠΎΡΠΎΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Flask.
- Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° functools.wraps() β ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΄Π΅ΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΠΎΡ ΠΎΠΆΠ΅ΠΉ Π½Π° ΠΈΡΡ ΠΎΠ΄Π½ΡΡ, Π΄Π΅Π»Π°Ρ ΡΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΠΈ, ΠΊΠ°ΠΊ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ doctstring ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°Π΄Π΅Π΅ΠΌΡΡ, ΡΡΠ° ΡΡΠ°ΡΡΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊΠ°Ρ Β«ΠΌΠ°Π³ΠΈΡΒ» Π»Π΅ΠΆΠΈΡ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΡΠ°Π±ΠΎΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ².