- 1.1 ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: Π·Π°ΡΠ΅ΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ?
- ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: ΠΏΠ»ΡΡΡ ΠΈ ΠΌΠΈΠ½ΡΡΡ
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π² Python: ΠΈΡΡΠΎΡΠΈΡ ΠΈ ΡΠ²ΠΎΠ»ΡΡΠΈΡ
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΠΈ: mypy, PyCharm, Π΄ΡΡΠ³ΠΈΠ΅
- 1.2 ΠΠ°Π·ΠΎΠ²ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ
:
- int, float, str, bool: ΠΎΡΠ½ΠΎΠ²Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΈΠΏΠ°ΠΌΠΈ
- None: ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
- Duck typing: Π½Π΅ΡΠ²Π½Π°Ρ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Π² Python
- 1.3 ΠΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ ΠΈ ΠΈΡ
ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ:
- list, tuple, dict, set: ΡΠ°Π±ΠΎΡΠ° Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ
- Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΉ: List[int], Tuple[str, int], Dict[str, float]
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΎΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΎΡΡ: ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
- 1.4 Π€ΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ:
- ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
- ΠΠ΅ΡΠ΅Π³ΡΡΠ·ΠΊΠ° ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΡΠΈΠΏΡ
- Callable: ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ
- 1.5 ΠΠ»Π°ΡΡΡ ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ:
- ΠΠ½Π½ΠΎΡΠ°ΡΠΈΡ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°
- ΠΠ΅ΡΠΎΠ΄Ρ ΠΊΠ»Π°ΡΡΠ° ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ
- ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠΈΠΏΠΈΠ·Π°ΡΠΈΡ: ΠΊΠ°ΠΊ ΡΠΈΠΏΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΡΡΡ Ρ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ
- 2.1 Π’ΠΈΠΏΠΈΠ·Π°ΡΠΈΡ Ρ ΠΈΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ TypeVar:
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»ΡΠ½ΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΊΠ»Π°ΡΡΠΎΠ²
- ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ TypeVar
- ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ TypeVar
- 2.2 Π’ΠΈΠΏΡ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΏΡ:
- Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΈΠΏΡ
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Optional Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ
- 2.3 Π’ΠΈΠΏΡ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠ²:
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΠΌΡΠ½ Π΄Π»Ρ ΡΠ»ΠΎΠΆΠ½ΡΡ ΡΠΈΠΏΠΎΠ²
- ΠΠΎΠ²ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΈ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠΌ
- 2.4 Π’ΠΈΠΏΡ Any, NoReturn:
- Any: ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ
- NoReturn: ΡΠΊΠ°Π·Π°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅
- 2.5 Π’ΠΈΠΏΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ²:
- ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠ»Π°ΡΡΠΎΠ² Π±Π΅Π· ΡΠ²Π½ΠΎΠ³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ
- Structural typing: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΈΠΏΠΎΠ² ΠΏΠΎ ΡΡΡΡΠΊΡΡΡΠ΅, Π° Π½Π΅ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ
- 3.1 ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ mypy Π² ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ:
- ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° mypy Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΈΠΏΠΎΠ² Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅
- ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ mypy ΠΈ ΠΈΡ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
- 3.2 Stub ΡΠ°ΠΉΠ»Ρ:
- Π§ΡΠΎ ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ?
- ΠΠ°ΠΊ ΡΠΈΠΏΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ stub ΡΠ°ΠΉΠ»ΠΎΠ²
Important
ΠΡΠ»ΠΈ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»ΡΡ ΡΡΠΎΡ ΠΊΡΡΡ, ΠΈ Π²Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΏΠ½ΡΠ»ΠΈ ΠΈΠ· Π½Π΅Π³ΠΎ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΡΠ΅ ΡΡΠΎΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Π·Π²ΡΠ·Π΄ΠΎΡΠΊΠΎΠΉ. ΠΠ½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ΅Π½Ρ ΠΏΡΠΈΡΡΠ½ΠΎ :)
