π₯ ΠΠ°ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ Π² python Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ: ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄Π»Ρ Π½ΠΎΠ²ΠΈΡΠΊΠΎΠ²
import sys
# ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΊΠΎΠ΄
# ΠΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΠΎΠ΄Π°
sys.exit()
# ΠΠΎΠ΄ ΠΏΠΎΡΠ»Π΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ
πΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅, ΠΊΠΎΠ³Π΄Π° Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ `sys.exit()`, ΠΎΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ `SystemExit`, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠΌΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠ±ΠΎΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅ Π²ΡΠ·ΠΎΠ²Π° `sys.exit()`, Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½.
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄ Π² Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Python Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΠ³Π΄Π° Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΠΈΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ. Π Python Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄ΠΎΡΡΠΈΡΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ, ΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π½ΠΈΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ breakpoint().
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π° breakpoint()
Breakpoint() β ΡΡΠΎ ΡΠ΄ΠΎΠ±Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π²Π²Π΅Π΄Π΅Π½Π° Π² Python 3.7 ΠΈ Π²ΡΡΠ΅. ΠΠ½Π° ΠΏΡΠΎΡΡΠΎ Π²ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ΄ Π² ΡΠΎΡΠΊΠ΅, Π³Π΄Π΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ Π½Π°ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π΄ΠΎΡΡΠΈΠ³Π°Π΅Ρ ΡΡΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΎΠ½Π° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎ ΡΠ°Π³Π°ΠΌ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ breakpoint()
Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ breakpoint(), Π²Π°ΠΌ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π΅Π΅ Π² ΠΌΠ΅ΡΡΠ΅, Π³Π΄Π΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠΎΠ΄. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
def calculate_sum(a, b):
total = a + b
breakpoint()
print(total)
calculate_sum(5, 7)
ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ breakpoint(), ΠΎΠ½Π° ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ, ΠΈ Π²Ρ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ°. ΠΡ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅ΠΊΡΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ°Π³ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π΅Π»Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
Π Python ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π΄ΡΡΠ³ΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² ΡΠ΅Π±Ρ:
- pdb: PDB (Python Debugger) β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ, Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π² Python. ΠΠ½ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΈΡΠΎΠΊΠΈΠΉ Π½Π°Π±ΠΎΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΡΠ°ΠΏΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- print(): ΠΡΠΎ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ print() Π² Π½ΡΠΆΠ½ΡΡ ΠΌΠ΅ΡΡΠ°Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ.
- logging: ΠΠΎΠ΄ΡΠ»Ρ logging ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΈ Π³ΠΈΠ±ΠΊΠΎΠ³ΠΎ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠΌΠ°Π½Π΄Π° breakpoint() ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΈ Π½Π°ΡΠ°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ Π² Python. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ breakpoint() Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ pdb, print() ΠΈΠ»ΠΈ logging, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠ΅ Π±ΠΎΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ: ΠΎΡΠ»Π°Π΄ΠΊΠ° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ ΠΈ ΡΠ΅ΡΠΈΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ. Π£ΡΠΈΡΠ΅ ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΡΡΠ°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠΌΠΏΠ΅ΡΠ΅Π½ΡΠ½ΡΠΌ Python-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ.