Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
Python β ΡΡΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. ΠΠΎΡΠ΅ΠΌΡ? / Π₯Π°Π±Ρ
Π ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΡΠΎΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Python. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² DevOps, Π² Π°Π½Π°Π»ΠΈΠ·Π΅ Π΄Π°Π½Π½ΡΡ , Π² Π²Π΅Π±-ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅, Π² ΡΡΠ΅ΡΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΈ Π² Π΄ΡΡΠ³ΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ . ΠΠΎ Π²ΠΎΡ ΡΠΊΠΎΡΠΎΡΡΡβ¦ ΠΠ΄Π΅ΡΡ ΡΡΠΎΠΌΡ ΡΠ·ΡΠΊΡ ΠΏΠΎΡ Π²Π°ΡΡΠ°ΡΡΡΡ Π½Π΅ΡΠ΅ΠΌ. ΠΠ²ΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π°, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΠΏΡΠ±Π»ΠΈΠΊΡΠ΅ΠΌ, ΡΠ΅ΡΠΈΠ» Π²ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΌΠ΅Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Python ΠΈ Π½Π°ΠΉΡΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π΅Π³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠΈΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊ Java, Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΠΎΠΎΡΠ½ΠΎΡΠΈΡΡΡ Ρ C ΠΈΠ»ΠΈ C++? ΠΠ°ΠΊ ΡΡΠ°Π²Π½ΠΈΡΡ C# ΠΈ Python? ΠΡΠ²Π΅ΡΡ Π½Π° ΡΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ΅ΡΡΡΠ·Π½ΠΎ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΡΠΈΠΏΠ° Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΡΡ
ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°, Π½ΠΎ, ΠΈΠ·ΡΡΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ
Π½Π° ΡΠ°Π·Π½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
, Π½Π΅ΠΏΠ»ΠΎΡ
ΠΎΠΉ ΠΎΡΠΏΡΠ°Π²Π½ΠΎΠΉ ΡΠΎΡΠΊΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΡ ΠΏΡΠΎΠ΅ΠΊΡ The Computer Language Benchmarks Game.
Π― ΡΡΡΠ»Π°ΡΡΡ Π½Π° The Computer Language Benchmarks Game ΡΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΡΡΠΈ Π»Π΅Ρ. Python, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ, ΠΊΠ°ΠΊ Java, C#, Go, JavaScript, C++, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΌΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ . Π‘ΡΠ΄Π° Π²Ρ ΠΎΠ΄ΡΡ ΡΠ·ΡΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (C#, Java), ΠΈ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (C, C++), Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠ΅ ΡΠ·ΡΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ JavaScript.
Π’ΡΡ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π³ΠΎΠ²ΠΎΡΡ Β«PythonΒ», Ρ ΠΈΠΌΠ΅Ρ Π² Π²ΠΈΠ΄Ρ ΡΡΠ°Π»ΠΎΠ½Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python β CPython. Π ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅ ΠΌΡ ΠΊΠΎΡΠ½ΡΠΌΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΡ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π·Π΄Π΅ΡΡ ΠΌΠ½Π΅ Ρ ΠΎΡΠ΅ΡΡΡ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Python ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π² 2-10 ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ·ΡΠΊΠ°ΠΌ, Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠΌΡΡ Π·Π°Π΄Π°Ρ, ΠΈ ΠΎ ΡΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π΅Π³ΠΎ Π±ΡΡΡΡΠ΅Π΅.
ΠΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΎΡΠΈΠΈ, ΠΏΡΡΠ°ΡΡΠΈΠ΅ΡΡ ΠΎΠ±ΡΡΡΠ½ΠΈΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Python:
- ΠΡΠΈΡΠΈΠ½Π° ΡΡΠΎΠ³ΠΎ β Π² GIL (Global Interpreter Lock, Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°).
- ΠΡΠΈΡΠΈΠ½Π° Π² ΡΠΎΠΌ, ΡΡΠΎ Python β ΡΡΠΎ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ.
- ΠΡΠΈΡΠΈΠ½Π° β Π² Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ.
ΠΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌ ΡΡΠΈ ΠΈΠ΄Π΅ΠΈ ΠΈ ΠΏΠΎΠΏΡΡΠ°Π΅ΠΌΡΡ Π½Π°ΠΉΡΠΈ ΠΎΡΠ²Π΅Ρ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΠ»ΡΠ½Π΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Python-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
GIL
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΠ΄Π΅ΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ, ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΡ ΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΌΠΎΡΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ β ΠΏΡΠΎΡΠ΅ΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome) ΠΌΠΎΠ³ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠΈΠ»ΡΠ½ΠΎ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΡΠ΅ΡΡΡΡΠ°Ρ
ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΠ΄ΡΠ°ΠΌΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΡΠ°ΡΡ Π²ΡΡΠ°ΡΡΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ Π·Π°Π΄Π°ΡΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Ρ ΠΌΠΎΠ΅Π³ΠΎ Π±ΡΠ°ΡΠ·Π΅ΡΠ° Chrome, Π² ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΡΠΎ ΠΏΠΈΡΡ, ΠΈΠΌΠ΅Π΅ΡΡΡ 44 ΠΎΡΠΊΡΡΡΡΡ ΠΏΠΎΡΠΎΠΊΠ°. Π’ΡΡ ΡΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎ, ΡΡΠΎ ΡΡΡΡΠΊΡΡΡΠ° ΠΈ API ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΡΠ°Π·Π»ΠΈΡΠ°Π΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΡ Π½Π° Posix (Mac OS, Linux), ΠΈ Π² ΠΠ‘ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Windows. ΠΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΡΠ»ΠΈ ΡΠ°Π½ΡΡΠ΅ Π²Ρ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π»ΠΈΡΡ Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ (locks). Π‘ΠΌΡΡΠ» Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΠ³Π΄Π°, Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΠ΅ΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² ΠΏΠ°ΠΌΡΡΠΈ, Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΏΠ°ΠΌΡΡΠΈ (Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ) Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠΎΠ³Π΄Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ CPython ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΠΎΠ½ Π²ΡΠ΄Π΅Π»ΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅. ΠΡΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΈΠ·Π²Π΅ΡΡΠ½Π° ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΡΡΡΡ ΡΡΡΠ»ΠΎΠΊ (reference counting). ΠΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ ΡΡΡΠ»ΠΎΠΊ ΡΠ°Π²Π½ΡΠ΅ΡΡΡ Π½ΡΠ»Ρ, ΡΠΎΠ³Π΄Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΡΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Β«Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Β» ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , ΡΠΊΠ°ΠΆΠ΅ΠΌ, Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΈΠΊΠ»ΠΎΠ², Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΡΠ΅Π·ΠΌΠ΅ΡΠ½ΠΎΠΌΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠΌΠ° ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΡΡΠ΅Π±Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
Π‘Π°ΠΌΠΎΠ΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ², Π° Π³Π»Π°Π²Π½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ CPython Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΡΡΡ ΡΡΡΠ»ΠΎΠΊ. Π’ΡΡ ΠΈ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Β«Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°Β», ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΎΠ².
ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π·Π° ΡΠ°Π·, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΈΠΌΠ΅Π΅ΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅.
βΠΠ°ΠΊ GIL Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Python-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ?
ΠΡΠ»ΠΈ Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ°Π±ΠΎΡΠ°ΡΡΠ΅Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python, ΡΠΎ GIL Π½ΠΈΠΊΠ°ΠΊ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ Π²Π»ΠΈΡΠ΅Ρ. ΠΡΠ»ΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ GIL, Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠΈΠΌ.
ΠΡΠ»ΠΈ ΠΆΠ΅, Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python, Π½Π°Π΄ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡΠΎΡΠ½ΠΎΡΡΠΈ, ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ Π±ΡΠ΄ΡΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΡ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ΅ΡΡΡ ΠΈΠ»ΠΈ Ρ Π΄ΠΈΡΠΊΠΎΠΌ), ΡΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ GIL ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄Π²ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ², ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ Π½Π°Π³ΡΡΠΆΠ°ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ².
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΡ GIL (Π²Π·ΡΡΠΎ ΠΎΡΡΡΠ΄Π°)
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π½Π° ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ΅ Django), ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ WSGI, ΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΠΊ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python, ΡΠΎ Π΅ΡΡΡ, Ρ Π½Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ Π»ΠΈΡΡ 1 Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π° Π·Π°ΠΏΡΠΎΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Python Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡΡ WSGI ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Β«ΡΠ΅ΠΆΠΈΠΌ Π΄Π΅ΠΌΠΎΠ½Π°Β», ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ΅ Π±ΡΡΡΡΠ΅Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°ΡΡ Π·Π°ΠΏΡΠΎΡΡ.
βΠΠ°ΠΊ Π²Π΅Π΄ΡΡ ΡΠ΅Π±Ρ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡ Python?
Π PyPy Π΅ΡΡΡ GIL, ΠΎΠ½ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π² 3 ΡΠ°Π·Π° Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ CPython.
Π Jython Π½Π΅Ρ GIL, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΈ Python Π² Jython ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ² Java. Π’Π°ΠΊΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ JVM.
βΠΠ°ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΠΎΠΊΠ°ΠΌΠΈ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ Π² JavaScript?
ΠΡΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ JavaScript, ΡΠΎ, Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π²ΡΠ΅ JS-Π΄Π²ΠΈΠΆΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΡΡΠΎΡΠ° mark-and-sweep. ΠΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ GIL β ΡΡΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΠ°ΠΌΡΡΡΡ, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΡΠΉ Π² CPython.
Π JavaScript Π½Π΅Ρ GIL, ΠΎΠ΄Π½Π°ΠΊΠΎ, JS β ΡΡΠΎ ΠΎΠ΄Π½ΠΎΠΏΠΎΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊ, ΠΏΠΎΡΡΠΎΠΌΡ Π² Π½ΡΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ ΠΈ Π½Π΅ Π½ΡΠΆΠ΅Π½. ΠΠΌΠ΅ΡΡΠΎ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π² JavaScript ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΈΠΊΠ»Π΅ ΡΠΎΠ±ΡΡΠΈΠΉ, ΠΏΡΠΎΠΌΠΈΡΠ°Ρ
ΠΈ ΠΊΠΎΠ»Π»Π±ΡΠΊΠ°Ρ
. Π Python Π΅ΡΡΡ Π½Π΅ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠ΅ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΌ asyncio
.
Python β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ
ΠΠ½Π΅ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½ΠΈΠ·ΠΊΠ°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Python ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΎ β ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° Π³ΡΡΠ±ΠΎΠΌ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΡΠ°Π±ΠΎΡΠ°Π΅Ρ CPython. ΠΡΠ»ΠΈ, Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅, Π²Π²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π²ΡΠΎΠ΄Π΅ python myscript.py
, ΡΠΎΠ³Π΄Π° CPython Π½Π°ΡΠ½ΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΡΠ΅Π½ΠΈΠΈ, Π»Π΅ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π΅, ΠΏΠ°ΡΡΠΈΠ½Π³Π΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠΊΡΠΈΠΏΡΠ°. ΠΡΠ»ΠΈ Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ β Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π».
ΠΠ»Ρ Π½Π°Ρ, ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ Π·Π΄Π΅ΡΡ, Π½Π° ΡΡΠ°Π΄ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°ΡΡΡΡ .pyc
-ΡΠ°ΠΉΠ», ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΈΡΠ΅ΡΡΡ Π² ΡΠ°ΠΉΠ» Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ __pycache__/
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΈ Π² Python 3, ΠΈ Π² Python 2.
ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π½Π°ΠΌΠΈ ΡΠΊΡΠΈΠΏΡΠ°ΠΌ, Π½ΠΎ ΠΈ ΠΊ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, Π±ΠΎΠ»ΡΡΡΡ ΡΠ°ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π΅ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π²Ρ Π½Π΅ ΠΏΠΈΡΠ΅ΡΠ΅ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·) Python Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΎΡΠΎΠ²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΡΠ»ΠΈ ΡΡΠ°Π²Π½ΠΈΡΡ ΡΡΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Java ΠΈ Π² C#, ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π½Π° Java ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ Π² Β«Intermediate LanguageΒ», ΠΈ Π²ΠΈΡΡΡΠ°Π»ΡΠ½Π°Ρ ΠΌΠ°ΡΠΈΠ½Π° Java ΡΠΈΡΠ°Π΅Ρ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΡΠΉ ΠΊΠΎΠ΄. Β«ΠΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊΒ» .NET CIL (ΡΡΠΎ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, ΡΡΠΎ .NET Common-Language-Runtime, CLR), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° ΠΊ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌΡ ΠΊΠΎΠ΄Ρ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅, ΠΈ Π² Java ΠΈ Π² C# ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΈΠΉ Β«ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΡΠ·ΡΠΊΒ» ΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ. ΠΠΎΡΠ΅ΠΌΡ ΠΆΠ΅ ΡΠΎΠ³Π΄Π° Python ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π² Π±Π΅Π½ΡΠΌΠ°ΡΠΊΠ°Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Ρ ΡΠ΄ΡΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΡΠ΅ΠΌ Java ΠΈ C#, Π΅ΡΠ»ΠΈ Π²ΡΠ΅ ΡΡΠΈ ΡΠ·ΡΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Ρ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅-ΡΠΎ ΡΠ°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡΠΈ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°? Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ β ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² .NET ΠΈ Π² Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ.
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ (Just In Time compilation, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Β«Π½Π° Π»Π΅ΡΡΒ» ΠΈΠ»ΠΈ Β«ΡΠΎΡΠ½ΠΎ Π² ΡΡΠΎΠΊΒ») ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ (ΠΊΠ°Π΄ΡΡ). Π‘ΠΈΡΡΠ΅ΠΌΡ AOT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ (Ahead Of Time compilation, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ) ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ»Π½ΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΊΠΎΠ΄Π° Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π½Π°ΡΠ½ΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
Π‘Π°ΠΌΠΎ ΠΏΠΎ ΡΠ΅Π±Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ JIT Π½Π΅ ΡΡΠΊΠΎΡΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ, ΠΊΠ°ΠΊ ΠΈ Π² Python, Π½Π΅ΠΊΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ JIT ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. Π₯ΠΎΡΠΎΡΠΈΠΉ JIT-ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΡΠ²ΠΈΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (ΡΠ°ΠΊΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π°Π·ΡΠ²Π°ΡΡ Β«hot spotΒ») ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ΄Π°, Π·Π°ΠΌΠ΅Π½ΠΈΠ² ΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ, ΡΠ΅ΠΌ ΡΠ΅, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ°Π½Π΅Π΅.
ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ½ΠΎΠ²Π° ΠΈ ΡΠ½ΠΎΠ²Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΠΊΠΈΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΏΠΎΠ΄ΠΎΠ±Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π½Π΅ Π·Π°Π±ΡΠ²Π°ΠΉΡΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Java ΠΈ C# β ΡΡΠΎ ΡΠ·ΡΠΊΠΈ ΡΠΎ ΡΡΡΠΎΠ³ΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ ΠΎ ΠΊΠΎΠ΄Π΅ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΡΡΠΈΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π΅ΡΡΡ Π² PyPy, ΠΈ, ΠΊΠ°ΠΊ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΡΡΡΡΠ΅Π΅, ΡΠ΅ΠΌ CPython. Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Python, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅.
βΠΠΎΡΠ΅ΠΌΡ Π² CPython Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ?
Π£ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΅ΡΡΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ. ΠΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ
β Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°. CPython ΠΈ ΡΠ°ΠΊ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π° PyPy Π² 2-3 ΡΠ°Π·Π° ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅, ΡΠ΅ΠΌ CPython. ΠΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° JVM β ΡΡΠΎ ΡΠΎΠΆΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΉ ΡΠ°ΠΊΡ. CLR .NET ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΡ Π² Ρ
ΠΎΠ΄Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΡ, Π½ΠΎ ΡΡΡ Π½Π°Π΄ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΈ CLR, ΠΈ ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ CLR, ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΡΠ΅ΡΡ Python, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΏΡΠΈ ΡΡΠΎΠΌ Π² ΡΠ°ΠΊΠΎΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΠ΅Π½ΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΊΠΈ, ΡΠΎΠ³Π΄Π° Π²Π°ΠΌ ΡΡΠΎΠΈΡ ΡΠ΅ΡΡΡΠ·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ.
ΠΠ΄Π½Π°ΠΊΠΎ, CPython β ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ° Python ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠΎΡΡΠΎΠΌΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΠ΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Python, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΡΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΈΠ»ΡΠ½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ ΡΠ°Π±ΠΎΡΡ.
CPython ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Python. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΊ Python, ΠΏΡΠ°Π²Π΄Π°, ΠΏΡΠΎΠ΅ΠΊΡ, Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ° ΠΈΠ΄Π΅Ρ, ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΡΡΡ Π½Π΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎ.
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²Ρ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python, ΠΏΠΈΡΠ΅ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΡΠΈΡΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ PyPy.
Python β Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΡΠ·ΡΠΊ
Π ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
ΡΠ·ΡΠΊΠ°Ρ
, ΠΏΡΠΈ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΠΈΡ
ΡΠΈΠΏΡ. Π‘ΡΠ΅Π΄ΠΈ ΡΠ°ΠΊΠΈΡ
ΡΠ·ΡΠΊΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ C, C++, Java, C#, Go.
Π Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠΎΡ ΠΆΠ΅ ΡΠΌΡΡΠ», Π½ΠΎ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ.
a = 1 a = "foo"
Π ΡΡΠΎΠΌ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Python ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠ΅ΡΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ a
, ΠΏΠΎΡΠΎΠΌ β Π²ΡΠΎΡΡΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΈΠΏ str
, ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅Ρ ΠΏΠ°ΠΌΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π²ΡΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ a
.
ΠΠΎΠΆΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΠΏΠΈΡΠ°ΡΡ Π½Π° ΡΠ·ΡΠΊΠ°Ρ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈ ΠΏΡΠΎΡΠ΅, ΡΠ΅ΠΌ Π½Π° ΡΠ·ΡΠΊΠ°Ρ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊΠΈΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π½Ρ Π½Π΅ ΠΏΠΎ ΡΡΠ΅ΠΉ-ΡΠΎ ΠΏΡΠΈΡ ΠΎΡΠΈ. ΠΡΠΈ ΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΡΡΡΠ΅Π½Ρ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ. ΠΡΡ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΡΠ΅ΠΊΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π² ΠΈΡΠΎΠ³Π΅, ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠΎΠΆΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΡΡΡΠΊΡΡΡΠ°ΠΌ.
Python Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΡΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΠ² Π½Π΅ Π²ΠΈΠ΄ΠΈΡ, ΠΈ Π·Π°Π±ΠΎΡΠΈΡΡΡΡ ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡΡ Π΅ΠΌΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΡΡΡΡΡΡΠ²ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡΠΈ Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠΈ β ΡΡΠΎ Π½Π΅ ΡΠ° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅Π»Π°Π΅Ρ Python ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΌ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΠ·ΡΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΄Π΅Π»Π°ΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ, ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ². ΠΠΏΡΡΡ ΠΆΠ΅, Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ Β«ΠΎΠ±Π΅Π·ΡΡΠ½ΡΠΈΡ ΠΏΠ°ΡΡΠ΅ΠΉΒ» Π² ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΌ Π²ΡΠ·ΠΎΠ²Π°ΠΌ. Π Python Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΡ.
ΠΠΌΠ΅Π½Π½ΠΎ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Python ΡΡΠ΅Π·Π²ΡΡΠ°ΠΉΠ½ΠΎ ΡΡΠ»ΠΎΠΆΠ½ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠΈΠ»Π»ΡΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΠΈΠ΄Π΅Ρ, Ρ ΡΠΎΠ±ΠΈΡΠ°ΡΡΡ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π² MacOS, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ DTrace.
Π Π³ΠΎΡΠΎΠ²ΠΎΠΌ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π΅ CPython Π½Π΅Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ DTrace, ΠΏΠΎΡΡΠΎΠΌΡ CPython Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ. Π’ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π²Π΅ΡΡΠΈΡ 3. 6.6. ΠΡΠ°ΠΊ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ:
wget https://github.com/python/cpython/archive/v3.6.6.zip unzip v3.6.6.zip cd v3.6.6 ./configure --with-dtrace make
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ python.exe
, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡ DTRace Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ DTrace Ρ Python ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ Π·Π΄Π΅ΡΡ. Π Π²ΠΎΡ ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΊΡΠΈΠΏΡΡ Π΄Π»Ρ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ DTrace ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ Python-ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ
β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΉ, Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°, ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ
Π²ΡΠ·ΠΎΠ²Π°Ρ
ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ dtrace
:
sudo dtrace -s toolkit/<tracer>.d -c β../cpython/python.exe script.pyβ
Π Π²ΠΎΡ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄ΡΡΠ²ΠΎ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ py_callflow
ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ²Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π’ΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ DTrace
Π’Π΅ΠΏΠ΅ΡΡ ΠΎΡΠ²Π΅ΡΠΈΠΌ Π½Π° Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Π²Π»ΠΈΡΠ΅Ρ Π»ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Python. ΠΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΠΏΠΎΠ²ΠΎΠ΄Ρ:
- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡ ΡΠΈΠΏΠΎΠ² β ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΡΠΆΡΠ»ΡΠ΅. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΊΠΎΠ³Π΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π΅Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠ°.
- Π―Π·ΡΠΊ, ΠΎΠ±Π»Π°Π΄Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ, ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ. ΠΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΡΡΡΡΠ΅Π΅ Python, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΠ΄ΡΡ Π½Π° ΡΠ΅ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ, Π²ΡΠ±ΠΈΡΠ°Ρ ΠΌΠ΅ΠΆΠ΄Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡΡ ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ.
- ΠΡΠΎΠ΅ΠΊΡ Cython ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Python ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ, ΡΡΠΎ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΡΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Π΅, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ 84-ΠΊΡΠ°ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎΠ³ΠΎ Python. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΡΠΊΠΎΡΠΎΡΡΡ.
ΠΡΠΎΠ³ΠΈ
ΠΡΠΈΡΠΈΠ½ΠΎΠΉ Π½Π΅Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Python ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π³ΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΡΠΈΡΠΎΠ΄Π° ΠΈ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ. ΠΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΠΎΠΎΠ±ΡΠ°Π·Π½Π΅ΠΉΡΠΈΡ
Π·Π°Π΄Π°Ρ. ΠΠ»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅Ρ
ΠΆΠ΅ ΡΠ΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠΈΡΠΊΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅, Π»ΡΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΉΡΠΈ ΠΈΡ
ΡΠ΄Π°ΡΡΡΡ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β Π½Π΅Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° Python, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ Π°ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΈ β ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄Π±ΠΈΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ. Π’Π°ΠΊ, Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΡΠ΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΈΠ³ΡΠ°ΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ PyPy. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π²Ρ Π³ΠΎΡΠΎΠ²Ρ ΠΊ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ β Π²Π·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° Cython.
Π£Π²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΡΠΈΡΠ°ΡΠ΅Π»ΠΈ! ΠΠ°ΠΊ Π²Ρ ΡΠ΅ΡΠ°Π΅ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π΅Π²ΡΡΠΎΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Python?
ΠΠΎΡΠ΅ΠΌΡ Python Π½Π΅ ΡΡΠ°Π½Π΅Ρ ΡΠ·ΡΠΊΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ΅Π½ β Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° vc.ru
ΠΠΎΠΌΠ°Π½Π΄Π° Mail.ru Cloud Solutions ΠΏΠ΅ΡΠ΅Π²Π΅Π»Π° ΠΊΠΎΠ»ΠΎΠ½ΠΊΡ Rhea Moutafis Β«Why Python is not the programming language of the futureΒ». ΠΠ²ΡΠΎΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°Π·Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ½Π΅Π½ΠΈΠ΅ Π°Π²ΡΠΎΡΠ° ΡΡΠ°ΡΡΠΈ.
136Β 180
ΠΏΡΠΎΡΠΌΠΎΡΡΠΎΠ²
Python ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² ΠΌΠΈΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π΄Π°Π²Π½ΠΎ, Π½ΠΎ Ρ Π½Π°ΡΠ°Π»Π° 2010 Π³ΠΎΠ΄ΠΎΠ² ΠΏΠ΅ΡΠ΅ΠΆΠΈΠ²Π°Π΅Ρ Π±ΡΠΌ β ΠΎΠ½ ΡΠΆΠ΅ ΠΎΠ±ΠΎΠ³Π½Π°Π» ΠΏΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ C, C#, Java ΠΈ JavaScript. ΠΠΎ ΠΊΠ°ΠΊΠΈΡ ΠΏΠΎΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΡ ΡΠ°Π½ΡΡΡΡΡ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΠΎΡΡΠ°, ΠΊΠΎΠ³Π΄Π° Python Π·Π°ΠΌΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ ΠΈ ΠΏΠΎΡΠ΅ΠΌΡ?
ΠΠ²ΡΠΎΡ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΡΡΠΈΡΠ°Π΅Ρ, ΡΡΠΎ Ρ Python Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ²ΠΎΠΉΡΡΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ Π΅ΠΌΡ ΡΡΠ°ΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ. ΠΠΎ Π΅ΡΡΡ ΠΈ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ½ΠΈΡΡΠΎΠΆΠ°Ρ Π΅Π³ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Python ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌ ΠΏΡΡΠΌΠΎ ΡΠ΅ΠΉΡΠ°Ρ
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡΠ»Π΅Π΄ΠΈΡΡ ΠΏΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΎΠ² Π½Π° ΡΠ°ΠΌΠΎΠΌ Π²ΠΎΡΡΡΠ΅Π±ΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ΅ΡΡΡΡΠ΅ β Stack Overflow. Π’Π°ΠΊ, ΡΡΠ΄Ρ ΠΏΠΎ Π³ΡΠ°ΡΠΈΠΊΡ, ΡΠΎΡΡ Python Π½Π°ΡΠ°Π»ΡΡ Ρ 2010 Π³ΠΎΠ΄Π°, Π° ΡΡΡΠ΅ΠΌΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΎΠ½ ΡΡΠ°Π» Π² 2015 Π³ΠΎΠ΄Ρ. Π ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ R Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π»Π΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΠΏΠ»Π°ΡΠΎ, Π° ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠΏΠ°Π΄ΠΊΠ΅. Π£ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Python Π΅ΡΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ.
ΠΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° Stack Overflow
ΠΡΠ΅ΠΌΡ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ
Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ Π½Π°Π·Π²Π°ΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠ°ΡΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ β ΠΎΠ½ ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² 1991 Π³ΠΎΠ΄Ρ, ΡΠΎ Π΅ΡΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ 30 Π»Π΅Ρ Π½Π°Π·Π°Π΄. ΠΠ° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΠ½ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠΎΠ±ΡΠ°Π» Π²ΠΎΠΊΡΡΠ³ ΡΠ΅Π±Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΡΡΠΈΠΌ ΡΠ·ΡΠΊΠΎΠΌ, ΡΠΎ ΡΠ΅ΡΠΈΡΡ Π΅Π΅, ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, ΠΏΠΎΠ»ΡΡΠΈΡΡΡ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠΌ Π² Google β Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΌΠ°Π½ΡΠ°Π» Ρ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠΌ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ ΠΊΠΎΠ΄Π°.
ΠΡΠΎΡΡΠΎΡΠ°
Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π»ΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π Π΄Π΅Π»ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π°Π²Π½ΠΎ ΠΈ ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎ Π½Π΅ΠΌΡ Π΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎ Ρ ΠΎΡΠΎΡΠΈΡ ΡΡΠ΅Π±Π½ΠΈΠΊΠΎΠ². Π£ Π½Π΅Π³ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ, ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ Π½Π° ΠΎΠ±ΡΡΠ½ΡΠΉ, Β«ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΠΊΠΈΠΉΒ» ΡΠ·ΡΠΊ. ΠΈ Π΅ΡΠ΅ ΠΎΠ½ ΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Π½Π΅ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ. ΠΠ· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ° Python ΠΏΠΎΠΉΠΌΠ΅Ρ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΠΎΠ½Π° ΡΠ΅Π»ΡΠΌ ΡΠΈΡΠ»ΠΎΠΌ, ΡΠΈΡΠ»ΠΎΠΌ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ, Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΅ΠΌ-ΡΠΎ Π΅ΡΠ΅. ΠΡΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ .
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠ»ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°ΡΡ Π½Π° C++, Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠ΅ΡΠ°Π»ΡΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ Π²Ρ Π³Π΄Π΅-ΡΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΠ»ΠΈ ΡΠΈΡΠ»ΠΎ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ Π½Π° ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ.
ΠΠΎΠ΄ Python Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ°ΡΡ. ΠΡΠΎΡΡΠΎ ΡΡΠ°Π²Π½ΠΈΡΠ΅ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Python ΠΈ C++.
Π£Π½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ
Python ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊ Π΄ΠΎΠ»Π³ΠΎ, ΡΡΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΌΠΎΠ³Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
- ΠΠ»Ρ ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅ΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΈ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΡ ΠΌΠ°ΡΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ NumPy.
- ΠΠ»Ρ ΡΠ°ΡΡΠ΅ΡΠΎΠ² Π² ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ½ΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ SciPy.
- ΠΠ»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ, Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Pandas.
- ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ Scikit-Learn.
ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ ΠΊΠ°ΠΊΡΡ-ΡΠΎ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, ΡΡΠΎ Π΄Π»Ρ Π½Π΅Π΅ ΡΠΆΠ΅ Π΅ΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Python. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ·ΡΠΊΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π² ΡΡΠ΅Π½Π΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ, ΡΡΠΎ Π²ΠΈΠ΄Π½ΠΎ ΠΏΠΎ Π²ΡΠΏΠ»Π΅ΡΠΊΡ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠΌ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠ½ΠΈΡΡΠΎΠΆΠΈΡΡ ΡΡΠΎΡ ΡΠ·ΡΠΊ
ΠΠΎΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΡΠ°ΡΡ ΠΊΡΠΈΡΠΈΡΠ½ΡΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·Π²ΠΈΡΠΈΡ Python ΠΊΠ°ΠΊ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ.
Π‘ΠΊΠΎΡΠΎΡΡΡ
Python ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΠΉ β Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ, Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π° Π½Π΅ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² Π΄Π²Π°, Π° ΡΠΎ ΠΈ Π² Π΄Π΅ΡΡΡΡ ΡΠ°Π· Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ΅ΠΌ Π΅ΡΠ»ΠΈ Π±Ρ Π²Ρ Π²ΡΠ±ΡΠ°Π»ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΡΠ·ΡΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΏΡΠΈΡΠΈΠ½Ρ. ΠΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Python β ΡΠ·ΡΠΊ Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ. Π’ΠΎ Π΅ΡΡΡ Π½Π° Π½Π΅ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ , ΠΊΠ°ΠΊ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ . ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ, Π½ΠΎ ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΡΠ΅Π±ΡΠ΅Ρ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΡΠ΅Π·Π΅ΡΠ²Π° ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΡΠΎΠ±Ρ ΠΎΠ½Π° ΡΠ°Π±ΠΎΡΠ°Π»Π° Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΠΌΡΡΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ.
Python ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π·Π°Π΄Π°ΡΡ Π·Π° ΡΠ°Π·, ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΠ·ΡΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π²ΡΡ ΠΈΡΠΏΠΎΡΡΡΡ. ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΎΠ±ΡΡΠ½ΡΠΉ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΡΡΡΠΊΠΎΠ² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΡΠΎΠΊΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ.
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΎΠ·ΡΠ°Π·ΠΈΡΡ β ΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΉΡΠ°Ρ Π²ΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ° ΡΠΊΠΎΡΠΎΡΡΡ, Π²Π΅Π΄Ρ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ ΡΡΠ°Π»ΠΈ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΠΎΡΠ½ΡΠΌΠΈ, ΡΡΠΎ Π² ΠΈΡΠΎΠ³Π΅ Β«ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΒ» ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π°Π³ΡΡΠ·ΠΊΠΎΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° 0,01 ΡΠ΅ΠΊΡΠ½Π΄Ρ ΠΈΠ»ΠΈ 0,001 ΡΠ΅ΠΊΡΠ½Π΄Ρ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ.
ΠΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ
Π ΠΠΈΡΠΎΠ½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π’ΠΎ Π΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ½Π°ΡΠ°Π»Π° ΠΈΡΠ΅Ρ ΡΠ΅ΠΊΡΡΠΈΠΉ Π±Π»ΠΎΠΊ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΠ΅ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π° Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅. ΠΡΠΎ, ΠΌΡΠ³ΠΊΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎΠΌΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈ Π΄ΠΎΠ»Π³ΠΎ. ΠΠΎΡΡΠΎΠΌΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΈΡΠΎΠ½ ΠΏΡΡΠ°Π»ΡΡ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ, Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π²ΡΡΠ»ΠΎ. ΠΠ±ΡΡΠ½ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ½ΠΊΡΠΈΠΈ Π²Π½ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π Python Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΈΠ΄Π΅ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ, Π½ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΡΡ ΠΈΡ . Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΡΠ°Π½ΠΈΡΠ΅.
ΠΡΠΌΠ±Π΄Π°-ΡΡΠ½ΠΊΡΠΈΠΈ
ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° Π²ΡΡ Π³ΠΈΠ±ΠΊΠΎΡΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠΌΠ±Π΄ Π² Python ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΎ. ΠΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ (expressions), Π½ΠΎ Π½Π΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌΠΈ (statements). Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ statements ΠΈ Π΅ΡΡΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ. ΠΡΠΎΡΠ΅ Π³ΠΎΠ²ΠΎΡΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ statements ΡΠ΄Π΅Π»Π°Π΅Ρ Π»ΡΠΌΠ±Π΄Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΡΡΠΎΡΠ½ΠΎΠΉ, Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Python Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ.
ΠΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ expressions ΠΈ statements Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎ, ΠΈ Π½Π΅ Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π΄ΡΡΠ³ΠΈΡ ΡΠ·ΡΠΊΠ°Ρ .
ΠΡΠΎΠ±Π΅Π»Ρ
ΠΠΈΡΠΎΠ½ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ β ΡΠ°ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΠ±Π΅Π»Ρ ΠΈ ΠΎΡΡΡΡΠΏΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π½ΡΡ ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΊΠΎΠ΄Π°. ΠΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ²Π»Π΅ΠΊΠ°ΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΈΠ½ΡΡΠΈΡΠΈΠ²Π½ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ.
ΠΡΡΠ³ΠΈΠ΅ ΡΠ·ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ C++, Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΡΠΈΠ³ΡΡΠ½ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ ΠΈ ΡΠΎΡΠΊΠΈ Ρ Π·Π°ΠΏΡΡΠΎΠΉ. Π ΠΏΡΡΡΡ ΡΡΠΎ Π½Π΅ ΡΠ°ΠΊ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΡΠΎΡΡΠ½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ², Π·Π°ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΄ΠΎΠ±Π½Π΅Π΅ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ. ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² ΡΡΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²Π°ΠΆΠ½Π΅Π΅.
ΠΠΎΠ²ΡΠ΅ ΡΠ·ΡΠΊΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Haskell, ΡΠ°ΠΊ ΡΠ΅ΡΠ°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΠΎΠ½ΠΈ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° ΠΏΡΠΎΠ±Π΅Π»Ρ, Π½ΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Ρ ΠΎΡΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· Π½ΠΈΡ .
ΠΡΠΎΠ±Π΅Π»Ρ Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ΄ Π±ΠΎΠ»Π΅Π΅ ΡΠΈΡΠ°Π΅ΠΌΡΠΌ, Π½ΠΎ ΠΌΠ΅Π½Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π² ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Irvan Smith Π½Π° Unsplash
ΠΠΎΠ±ΠΈΠ»ΡΠ½Π°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
Π‘Π΅ΠΉΡΠ°Ρ ΠΌΡ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΎΠ²ΡΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΊ ΡΠΌΠ°ΡΡΡΠΎΠ½Π°ΠΌ β ΡΠΆΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ½Ρ ΡΠ·ΡΠΊΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠ΅ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
Π Python ΡΠ°ΠΊΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊ Π±Ρ Π΅ΡΡΡ β ΠΏΠ°ΠΊΠ΅Ρ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Kivy. ΠΠΎ Π½ΡΠΆΠ½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ Python Π½Π΅ Π±ΡΠ» ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΌ, Π½ΠΎ Π·Π°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ·ΡΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ Π΄Π»Ρ ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ: React Native, Flutter, Iconic ΠΈ Cordova.
ΠΡΠ»ΠΈ Π²Ρ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅ΡΠ΅ ΡΡΠ°ΡΡ Π²ΡΠ΅ΡΡΠΎΡΠΎΠ½Π½Π΅ ΡΠ°Π·Π²ΠΈΡΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ, ΡΠΎΠ»ΡΠΊΠΎ Π·Π½Π°Π½ΠΈΡ Python Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ.
ΠΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ (Runtime Errors)
Π‘ΠΊΡΠΈΠΏΡΡ Π² Python ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ, Π° ΡΠΆΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ. ΠΠΎΡΡΠΎΠΌΡ Π»ΡΠ±Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°.
ΠΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½ΠΈΠ·ΠΊΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π·Π°ΡΡΠ°ΡΠ°ΠΌ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΌΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Ρ ΡΠ΅ΡΡΠΎΠ². Π’Π΅ΡΡΡ β ΡΡΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ². ΠΠΎ Π΄Π»Ρ ΠΎΠΏΡΡΠ½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΡΠ°ΠΊΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΡΡ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅Ρ Π²Π°ΡΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Python Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ
ΠΠ° ΡΡΠ½ΠΊΠ΅ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΎΠ²:
- Rust β Π² Π½Π΅ΠΌ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π² Python, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΠ°Π½Π°. ΠΠΎ Π·Π° ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Π²Π»Π°Π΄Π΅Π½ΠΈΡ ΠΈ Π·Π°ΠΈΠΌΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ Π² Rust ΡΠ΅ΡΠ΅Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΡΡΠ°ΡΠΈ, ΠΈΠΌΠ΅Π½Π½ΠΎ Rust ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π°Π·ΡΠ²Π°ΡΡ ΡΠ°ΠΌΡΠΌ Π»ΡΠ±ΠΈΠΌΡΠΌ ΡΠ·ΡΠΊΠΎΠΌ.
- Go ΡΡΠΎΠΈΡ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ. ΠΠ½ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡ Π² ΠΎΡΠ²ΠΎΠ΅Π½ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ΄ ΡΠΎΠΆΠ΅ Π½Π΅ ΡΡΡΠ΄Π½ΠΎ. ΠΠ»ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π½Π° GO ΡΠ΅ΠΉΡΠ°Ρ ΠΎΠ΄Π½ΠΈ ΠΈΠ· ΡΠ°ΠΌΡΡ Π²ΡΡΠΎΠΊΠΎΠΎΠΏΠ»Π°ΡΠΈΠ²Π°Π΅ΠΌΡΡ .
- Julia ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΊΡΡΠΏΠ½ΠΎΠΌΠ°ΡΡΡΠ°Π±Π½ΡΡ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ. Π Π°Π½ΡΡΠ΅ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Python ΠΈΠ»ΠΈ Matlab ΠΏΠ»ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ C++. ΠΠΎΡΠ»Π΅ Π²ΡΡ ΠΎΠ΄Π° Julia ΠΏΠΎΡΡΠ΅Π±Π½ΠΎΡΡΡ Π² ΠΆΠΎΠ½Π³Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ·ΡΠΊΠ°ΠΌΠΈ ΠΎΡΠΏΠ°Π»Π°.
ΠΠ° ΡΡΠ½ΠΊΠ΅ Π΅ΡΡΡ ΠΌΠ°ΡΡΠ° Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ·ΡΠΊΠΎΠ², Π½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈ ΡΡΠΈ Π·Π°ΠΊΡΡΠ²Π°ΡΡ ΡΠ»Π°Π±ΡΠ΅ ΠΌΠ΅ΡΡΠ° Python. Rust, Go ΠΈ Julia ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΈΠ½Π½ΠΎΠ²Π°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΄Π»Ρ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ°. Π‘Π΅ΠΉΡΠ°Ρ ΠΈΡ Π΄ΠΎΠ»Ρ Π½Π° ΡΡΠ½ΠΊΠ΅ Π΅ΡΠ΅ Π½Π΅Π²Π΅Π»ΠΈΠΊΠ°, ΡΡΠ΄Ρ ΠΏΠΎ ΡΠ΅Π³Π°ΠΌ Stack Overflow, Π½ΠΎ ΡΠ΅Π½Π΄Π΅Π½ΡΠΈΡ ΡΠΎΡΡΠ° ΡΠΆΠ΅ Π΅ΡΡΡ.
ΠΠΈΠ½Π°ΠΌΠΈΠΊΠ° ΡΠΎΡΡΠ° Π½Π° Stack Overflow
Π£ΡΠΈΡΡΠ²Π°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Python Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ, Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π½Π΅ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΡΠΈ, Π° ΡΠΎ ΠΈ Π΄Π΅ΡΡΡΠΈ Π»Π΅Ρ, ΡΡΠΎΠ±Ρ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΠΈΡ Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π·Π°ΠΌΠ΅Π½ΠΈΠ» Π΅Π³ΠΎ.
ΠΠ°ΠΊΠΎΠΉ ΠΈΠ· ΡΠ·ΡΠΊΠΎΠ² ΡΡΠΎ Π±ΡΠ΄Π΅Ρ β Rust, Go, Julia ΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΡΠ·ΡΠΊ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ β ΠΏΠΎΠΊΠ° ΡΡΡΠ΄Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΠΎ ΡΡΠΈΡΡΠ²Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΏΠΎΠ»Π°Π³Π°ΡΡΠΈΠΌΠΈ Π² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Python, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· Π½ΠΎΠ²ΡΡ ΡΠ·ΡΠΊΠΎΠ² Π½Π°ΠΉΠ΄Π΅Ρ ΡΠ²ΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ.
Π§ΡΠΎ Π΅ΡΠ΅ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
- Π―Π·ΡΠΊ Golang Π½Π° ΠΏΠΈΠΊΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΠΈ Ρ IT-ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ.
- ΠΠ΅ΠΎΠ±ΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ Π°Π²ΡΠΎΡΠ΅ΡΡΠ°ΠΌ Π΄Π»Ρ JavaScript ΠΈ UI.
- ΠΠ°Ρ ΠΊΠ°Π½Π°Π» ΠΎΠ± IT Π² Π’Π΅Π»Π΅Π³ΡΠ°ΠΌΠ΅.
Π§ΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ python?
ΡΠΏΡΠΎΡΠΈΠ»
ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΎ
1 Π³ΠΎΠ΄, 7 ΠΌΠ΅ΡΡΡΠ΅Π² Π½Π°Π·Π°Π΄
ΠΡΠΎΡΠΌΠΎΡΡΠ΅Π½ΠΎ
9ΠΊ ΡΠ°Π·
Π― ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ, ΡΡΠΎ Python ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, Π½ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ»Π° Π±Ρ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΡΠ΅, Π΅ΡΠ»ΠΈ Π±Ρ ΠΎΠ½ Π±ΡΠ» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½.
- Π§ΡΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ python?
- ΠΠΎΡΠ΅ΠΌΡ Python Π±ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΊΠ°ΠΊ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΉ ΡΠ·ΡΠΊ, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ?
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π― Π·Π½Π°Ρ ΠΎ ΡΠ°ΠΉΠ»Π°Ρ
.pyc
, Π½ΠΎ ΡΡΠΎ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄, Π° Π½Π΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ.
- ΠΏΠΈΡΠΎΠ½
6
Python, ΡΠ·ΡΠΊ, ΠΊΠ°ΠΊ ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠ·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΡΠ°ΠΌ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΈ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΡΡΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Python, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ CPython, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ Python Π² Π±Π°ΠΉΡ-ΠΊΠΎΠ΄ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅ΡΡΡ ΠΏΠΎΠ΄ Β«ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΡΠ΅ΠΌΡΠΌΒ».
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Python, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ Π² ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΎΠ΅ΠΊΡ PyPy ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ JIT, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΏΡΠΎΡΡΠΎΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ CPython Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Cython β Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π³ΠΈΠ±ΡΠΈΠ΄Π½ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠ΄ C Π½Π° Π»Π΅ΡΡ ΠΈΠ· Π΄ΠΈΠ°Π»Π΅ΠΊΡΠ° Python.
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Python ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ΡΠ΅Π»Π΅ΡΠΎΠΎΠ±ΡΠ°Π·Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΡΠΈ ΠΊΠΎΠ΄Π°, ΠΈ ΠΎΠ½ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΆΠ΅ Π±ΡΡΡΡΡΠΌ, ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ·ΡΠΊΠΈ ΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ JIT-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΡΡ.
Python β ΡΡΠΎ ΡΠ·ΡΠΊ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠΉ Π΄Π»Ρ ΡΠ°ΠΊΠΈΡ Π²Π΅ΡΠ΅ΠΉ, ΠΊΠ°ΠΊ Π±ΡΡΡΡΠΎΠ΅ ΠΏΡΠΎΡΠΎΡΠΈΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π±ΡΡΡΡΠ°Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΌΡΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ, Π»Π΅ΠΆΠ°ΡΠΈΠΉ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°, Π° Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π² ΡΡΠΈΡ ΠΎΠ±Π»Π°ΡΡΡΡ (Π·Π° ΡΡΠ΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ). ΠΠ΄Π½Π°ΠΊΠΎ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π²Π°ΠΌ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ Π΄Π»Ρ Python; Facebook ΡΠ΄Π΅Π»Π°Π» ΡΡΠΎ-ΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π΄Π»Ρ PHP, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΈ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ HHVM Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π±Π°ΠΉΡ-ΠΊΠΎΠ΄Π° ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Hack (ΠΈΡ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ PHP).
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Python. Cython β ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ ΠΌΠ½Π΅ Π² Π³ΠΎΠ»ΠΎΠ²Ρ (cython.org).
Π― Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΠΊΠΎΠ΄ Python ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΄ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ, Π½ΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π² Python Π·Π°ΡΠ°Π½Π΅Π΅. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ ΡΠΎ ΡΠ»Π°Π±ΠΎ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΡΠΈΠ»Π΅ΠΌ Python, Π³Π΄Π΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Python, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Rpython, ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ ΡΡΠΈΠ»Ρ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π°.
Python β ΡΡΠΎ ΡΠ·ΡΠΊ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ Π΄Π»Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΠ³ΠΎ ΠΈ Π²ΡΡΠ°Π·ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
Python Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ΅Ρ
ΡΠ²ΠΎΠΈΡ
ΡΠΎΡΠ΅Π΄Π΅ΠΉ.
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠ΄ Python Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΡΠ±ΠΎΡΠΊΡ ΠΈΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Ρ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠΎΠ΄Π½ΠΎΠΉ ΡΠ·ΡΠΊ Ρ ΠΏΠΈΡΠΎΠ½ΠΎΠΌ. ΠΠΎΠ·ΡΠΌΠ΅ΠΌ Π‘++.
ΠΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ python, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π΅Π»Π°ΡΡ ΠΊΠ°ΠΊΠΎΠ΅-Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° Π² python. ΠΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ Python. ΠΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΏΠΎΠΏΡΡΠ°Π΅ΡΠ΅ΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΆΠ΅ ΡΡΠ½ΠΊΡΠΈΡ Π½Π° C++, ΡΡΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ. ΠΠ½ Π΄ΠΎΠ±Π°Π²ΠΈΡ ΠΊΠΎΠ΄ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΊ Π½Π΅ΠΉ Π±ΡΠ΄ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΊΠΈΡ
-Π»ΠΈΠ±ΠΎ ΡΠ΅Π»Π΅ΠΉ. ΠΠ°ΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Python Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΡΠ»ΡΡΡΠ°Π΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΉ Python — ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ c, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Python Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π²Π½ΡΡΡΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΈΡ Π² ΡΠΊΡΠΈΠΏΡΠ΅ Python.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΉ Π½Π°ΠΌ Π½Π΅ Π½ΡΠΆΠ΅Π½ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Python, Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π±ΠΎΠ»ΡΡΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π°Ρ . ΠΠ΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΡΠΈΡΠΊ, Π° Π½Π΅ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π΅Π³ΠΎ. Π Python ΡΠ΅ΡΡΠΎΠ²ΡΠΊΠΈ Π±ΡΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Π΅ΡΡ Π΅Π³ΠΎ ΠΊΠΎΠ΄ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΈΠ»ΠΈ Π²ΠΎΠΉΠ΄ΠΈΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Google
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· Facebook
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅ΠΊΡΡΠΎΠ½Π½ΡΡ ΠΏΠΎΡΡΡ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π³ΠΎΡΡΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ
ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΊΠ°ΠΊ Π³ΠΎΡΡΡ
ΠΠ»Π΅ΠΊΡΡΠΎΠ½Π½Π°Ρ ΠΏΠΎΡΡΠ°
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ, Π½ΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ
β Π·Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ΄ Python?
ΠΠ»ΡΡΡ:
ΠΠ΅ΡΠ²ΠΎΠ΅: ΠΌΡΠ³ΠΊΠΎΠ΅, Π½Π΅ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΠΈΠΌΠΎΠ΅ Π·Π°ΠΏΡΡΡΠ²Π°Π½ΠΈΠ΅.
ΠΠΎ-Π²ΡΠΎΡΡΡ : Π΅ΡΠ»ΠΈ Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΡΠ°ΠΉΠ», Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π£Π΄ΠΎΠ±Π½ΠΎ Π΄Π»Ρ ΡΠ΅ΡΠΈ.
Π’ΡΠ΅ΡΡΠ΅: Python ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΏΡΡΡΠΈΡΡ ΡΡΠ°ΠΏ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ. ΠΡΡΡΡΠ΅Π΅ ΠΏΡΠΈ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠ΅. Π₯ΠΎΡΠΎΡΠΎ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΡΠ΅ΡΠΈ.
Π-ΡΠ΅ΡΠ²Π΅ΡΡΡΡ
: ΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ Π²Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠ΅ΡΠ΅, ΡΠ΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΉΠ» .pyc
ΠΈΠ»ΠΈ .pyo
ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ .py
.
ΠΡΡΠΎΠ΅: ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π² ΡΡΠΊΠ°Ρ
ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΉΠ» .pyc
ΠΈΠ»ΠΈ .pyo
, Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡ Π²Π°ΠΌ ΠΎΡΠΈΠ±ΠΊΡ, Π²ΡΠ·Π²Π°Π½Π½ΡΡ Π½Π΅ΠΎΠ±ΡΠ°ΡΠΈΠΌΡΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ, ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ Π·Π°Π±ΡΠ» Π²Π°ΠΌ ΡΠΎΠΎΠ±ΡΠΈΡΡ.
Π¨Π΅ΡΡΠΎΠ΅: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π°ΡΠ΅Π»Π΅Π½Ρ Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅Π½ΡΡΠ΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ°
ΡΠ°ΠΉΠ» Π΄Π»Ρ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΠΎΠΉ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΠ»ΡΡ, Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅, Π½Π΅ Π²ΡΡΡΠΏΠ°Π΅Ρ Π² ΠΈΠ³ΡΡ.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ
ΠΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°ΡΡ, ΡΡΠΎ ΠΈΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ» Python Π²Π΅ΡΡ
Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΉΠ» . pyc
ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
python -m py_compile myscript.py
Π£Π΄Π°Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΠ½ ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π΅ΡΡΠΎΠ½ΡΡΡΠΌΠΈ ΡΡΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΠΊΠΆΠ΅ Ρ
ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΡΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
(Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ ΠΎ ΡΠΎΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π²Ρ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅), ΡΠΎ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ ΡΡΠΎΡ ΡΠΏΠΎΡΠΎΠ±…
python -OO -m py_compile myscript.py
… ΠΈ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ°ΠΉΠ» .pyo
Π²ΠΌΠ΅ΡΡΠΎ ΡΠ°ΠΉΠ»Π° .pyc
; ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠΎΠ΄Π°, Π½ΠΎ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ ΡΡΠ΅Π·Π°Π½Π½ΡΡ
ΡΡΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
(ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΈΠΌΠ΅Π» ΠΏΡΠΈΠ»ΠΈΡΠ½ΡΠ΅ ΡΡΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
). ΠΠΎ ΡΠΌ. Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΠΊ ΡΡΠΈ Π½ΠΈΠΆΠ΅.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ python ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π°ΡΡ ΡΠ°ΠΉΠ»Π° .py
, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΠΈΡΡ, ΡΠ»Π΅Π΄ΡΠ΅Ρ Π»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ .py
Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ .pyc
ΠΈΠ»ΠΈ .pyo
— ΠΏΠΎΡΡΠΎΠΌΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΠ°ΠΉΠ» . py, ΠΈ .pyc
ΠΈΠ»ΠΈ .pyo
ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡ, ΠΈ Π²ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ, ΡΠ΅ΡΡΡΡΡΡ. ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ½ΠΎΠ²Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° .pyc
ΠΈΠ»ΠΈ .pyo
, ΠΊΠ°ΠΊΠΈΠΌΠΈ Π±Ρ ΠΎΠ½ΠΈ Π½ΠΈ Π±ΡΠ»ΠΈ.
ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ
: Π² ΡΠ°ΠΉΠ»Π°Ρ
.pyc
ΠΈ .pyo
Π΅ΡΡΡ Β«Π²ΠΎΠ»ΡΠ΅Π±Π½ΡΠΉ ΡΠ°ΠΉΠ» cookieΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ Π±ΡΠ» ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ ΡΠ°ΠΉΠ» python. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΠΈΡ
ΡΠ°ΠΉΠ»ΠΎΠ² Π² ΡΡΠ΅Π΄Π΅ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΎΠ½ ΡΠ»ΠΎΠΌΠ°Π΅ΡΡΡ. ΠΡΠ»ΠΈ Π²Ρ ΡΠ°Π·Π΄Π°Π΅ΡΠ΅ .pyc
ΠΈΠ»ΠΈ .pyo
Π±Π΅Π· ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ .py
Π΄Π»Ρ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈΠ»ΠΈ touch
, ΡΡΠΎΠ±Ρ ΠΎΠ½ Π·Π°ΠΌΠ΅Π½ΡΠ» .pyc
ΠΈΠ»ΠΈ .pyo
, ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ.
ΠΡΠΎΡΠΎΠ΅: Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ
ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ -OO
, ΠΊΠ°ΠΊ ΠΎΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π½ΠΈΠΊΡΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΡ (ΠΈΠ»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ) ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. )
Π’ΡΠ΅ΡΠΈΠΉ: Python -OO 9ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ 0020 ΡΠ°ΠΊΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ
-O
; ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅. ΠΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ:
-
sys.flags.optimize
= 1 -
ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠΎΠΏΡΡΠ΅Π½ΠΎ -
__ΠΎΡΠ»Π°Π΄ΠΊΠ°__
= ΠΠΎΠΆΡ
Π-ΡΠ΅ΡΠ²Π΅ΡΡΡΡ
: Π΅ΡΠ»ΠΈ Π²Ρ Π½Π°ΠΌΠ΅ΡΠ΅Π½Π½ΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΠΉ ΡΠ°ΠΉΠ» Π²Π°ΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ° Python Ρ ΡΠ΅ΠΌ-ΡΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° #!/usr/bin/python
Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΡΡΠΎ ΡΠ΄Π°Π»ΡΠ΅ΡΡΡ Π² .pyc
ΠΈ .pyo
, ΠΈ ΡΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½Π°.
ΠΡΡΠΎΠ΅: Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ -O, Π° ΡΠ°ΠΊΠΆΠ΅ -OO, ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ
Π½Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡΡΡΡ, ΡΡΠΎ ΡΡΡΡΠ°Π½ΡΠ΅Ρ ΠΈΡΡΠΎΡΠ½ΠΈΠΊ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΊΠΎΠΌΠΏΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ try
ΠΊΡΠΎΠΌΠ΅
, Π½ΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΎΡΠΊΠ°Π·Π° ΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° assert Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌ, ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡΡΡ.
Π¨Π΅ΡΡΠΎΠ΅: Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄, ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π»ΠΈΡΠ΅Ρ Π½Π° Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ ΡΡΠΈΡΡΡΡ Π½Π° Π²Π°ΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΠ΅, ΡΠ°ΡΡΠΎ ΡΠΈΠ»ΡΠ½ΠΎ.