--- /dev/null
+# ΠΡΡΡΠΏ Π΄ΠΎ ΡΠΈΠΏΡΠ² Python
+
+Python ΠΏΡΠ΄ΡΡΠΈΠΌΡΡ Π΄ΠΎΠ΄Π°ΡΠΊΠΎΠ²Ρ "ΠΏΡΠ΄ΠΊΠ°Π·ΠΊΠΈ ΡΠΈΠΏΡ" ("type hints") (ΡΠ°ΠΊΠΎΠΆ Π·Π²Π°Π½Ρ "Π°Π½ΠΎΡΠ°ΡΡΡΠΌΠΈ ΡΠΈΠΏΡ" ("type annotations")).
+
+Π¦Ρ **"type hints"** Ρ ΡΠΏΠ΅ΡΡΠ°Π»ΡΠ½ΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ, ΡΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΎΠ³ΠΎΠ»ΠΎΡΡΠ²Π°ΡΠΈ <abbr title="Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄: str, int, float, bool">ΡΠΈΠΏ</abbr> Π·ΠΌΡΠ½Π½ΠΎΡ.
+
+ΠΠ° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ ΡΠΈΠΏΡΠ² Π΄Π»Ρ Π²Π°ΡΠΈΡ
Π·ΠΌΡΠ½Π½ΠΈΡ
, ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠΈ ΡΠ° ΡΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ ΠΌΠΎΠΆΡΡΡ Π½Π°Π΄Π°ΡΠΈ Π²Π°ΠΌ ΠΊΡΠ°ΡΡ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ.
+
+Π¦Π΅ ΠΏΡΠΎΡΡΠΎ **ΡΠ²ΠΈΠ΄ΠΊΠΈΠΉ ΠΏΠΎΡΡΠ±Π½ΠΈΠΊ / Π½Π°Π³Π°Π΄ΡΠ²Π°Π½Π½Ρ** ΠΏΡΠΎ Π°Π½ΠΎΡΠ°ΡΡΡ ΡΠΈΠΏΡΠ² Ρ Python. ΠΡΠ½ ΠΏΠΎΠΊΡΠΈΠ²Π°Ρ Π»ΠΈΡΠ΅ ΠΌΡΠ½ΡΠΌΡΠΌ, Π½Π΅ΠΎΠ±Ρ
ΡΠ΄Π½ΠΈΠΉ ΡΠΎΠ± Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΡ
Π· **FastAPI**... ΡΠΎ Π½Π°ΡΠΏΡΠ°Π²Π΄Ρ Π΄ΡΠΆΠ΅ ΠΌΠ°Π»ΠΎ.
+
+**FastAPI** ΠΏΠΎΠ²Π½ΡΡΡΡ Π±Π°Π·ΡΡΡΡΡΡ Π½Π° ΡΠΈΡ
Π°Π½ΠΎΡΠ°ΡΡΡΡ
ΡΠΈΠΏΡΠ², Π²ΠΎΠ½ΠΈ Π΄Π°ΡΡΡ ΠΉΠΎΠΌΡ Π±Π°Π³Π°ΡΠΎ ΠΏΠ΅ΡΠ΅Π²Π°Π³.
+
+ΠΠ»Π΅ Π½Π°Π²ΡΡΡ ΡΠΊΡΠΎ Π²ΠΈ Π½ΡΠΊΠΎΠ»ΠΈ Π½Π΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°ΡΡΠ΅ **FastAPI**, Π²Π°ΠΌ Π±ΡΠ΄Π΅ ΠΊΠΎΡΠΈΡΠ½ΠΎ Π΄ΡΠ·Π½Π°ΡΠΈΡΡ ΡΡΠΎΡ
ΠΈ ΠΏΡΠΎ Π½ΠΈΡ
.
+
+!!! note
+ Π―ΠΊΡΠΎ Π²ΠΈ Π΅ΠΊΡΠΏΠ΅ΡΡ Ρ Python Ρ Π²ΠΈ Π²ΠΆΠ΅ Π·Π½Π°ΡΡΠ΅ ΡΡΠ΅ ΠΏΡΠΎ Π°Π½ΠΎΡΠ°ΡΡΡ ΡΠΈΠΏΡΠ² - ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΡΡ Π΄ΠΎ Π½Π°ΡΡΡΠΏΠ½ΠΎΠ³ΠΎ ΡΠΎΠ·Π΄ΡΠ»Ρ.
+
+## ΠΠΎΡΠΈΠ²Π°ΡΡΡ
+
+ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠ½Π΅ΠΌΠΎ Π· ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠΊΠ»Π°Π΄Ρ:
+
+```Python
+{!../../../docs_src/python_types/tutorial001.py!}
+```
+
+ΠΠΈΠΊΠ»ΠΈΠΊ ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π²ΠΈΠ²ΠΎΠ΄ΠΈΡΡ:
+
+```
+John Doe
+```
+
+Π€ΡΠ½ΠΊΡΡΡ Π²ΠΈΠΊΠΎΠ½ΡΡ Π½Π°ΡΡΡΠΏΠ½Π΅:
+
+* ΠΠ΅ΡΠ΅ `first_name` ΡΠ° `last_name`.
+* ΠΠΎΠ½Π²Π΅ΡΡΡΡ ΠΊΠΎΠΆΠ½Ρ Π»ΡΡΠ΅ΡΡ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° Ρ Π²Π΅ΡΡ
Π½ΡΠΉ ΡΠ΅Π³ΡΡΡΡ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ `title()`.
+* <abbr title="ΠβΡΠ΄Π½ΡΡ ΡΡ
, ΡΠΊ ΠΎΠ΄Π½Π΅ ΡΡΠ»Π΅. Π Π²ΠΌΡΡΡΠΎΠΌ ΠΎΠ΄ΠΈΠ½ Π·Π° ΠΎΠ΄Π½ΠΈΠΌ.">ΠΠΎΠ½ΠΊΠ°ΡΠ΅Π½ΡΡ</abbr> ΡΡ
ΡΠ°Π·ΠΎΠΌ ΡΠ· ΠΏΡΠΎΠ±ΡΠ»ΠΎΠΌ ΠΏΠΎ ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ.
+
+```Python hl_lines="2"
+{!../../../docs_src/python_types/tutorial001.py!}
+```
+
+### Π Π΅Π΄Π°Π³ΡΠΉΡΠ΅ ΡΠ΅
+
+Π¦Π΅ Π΄ΡΠΆΠ΅ ΠΏΡΠΎΡΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°.
+
+ΠΠ»Π΅ ΡΠ΅ΠΏΠ΅Ρ ΡΡΠ²ΡΡΡ, ΡΠΎ Π²ΠΈ ΠΏΠΈΡΠ°Π»ΠΈ ΡΠ΅ Π· Π½ΡΠ»Ρ.
+
+Π£ ΠΏΠ΅Π²Π½ΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΈ ΡΠΎΠ·ΠΏΠΎΡΠ°Π»ΠΈ Π± Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ ΡΡΠ½ΠΊΡΡΡ, Ρ Π²Π°Ρ Π±ΡΠ»ΠΈ Π± Π³ΠΎΡΠΎΠ²Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ...
+
+ΠΠ»Π΅ ΡΠΎΠ΄Ρ Π²Π°ΠΌ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΠΈ "ΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠΈΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡΡ ΠΏΠ΅ΡΡΡ Π»ΡΡΠ΅ΡΡ Ρ Π²Π΅ΡΡ
Π½ΡΠΉ ΡΠ΅Π³ΡΡΡΡ".
+
+Π¦Π΅ Π±ΡΠ΄Π΅ `upper`? Π§ΠΈ `uppercase`? `first_uppercase`? `capitalize`?
+
+Π’ΠΎΠ΄Ρ Π²ΠΈ ΡΠΏΡΠΎΠ±ΡΡΡΠ΅ Π΄Π°Π²Π½ΡΠΎΠ³ΠΎ Π΄ΡΡΠ³Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡΠ° - Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ²Π½Π΅Π½Π½Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° ΠΊΠΎΠ΄Ρ.
+
+ΠΠΈ Π½Π°Π΄ΡΡΠΊΡΡΡΠ΅ ΠΏΠ΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΡΡ, `first_name`, ΡΠΎΠ΄Ρ ΠΊΡΠ°ΠΏΠΊΡ (`.`), Π° ΡΠΎΠ΄Ρ Π½Π°ΡΠΈΡΠ½Π΅ΡΠ΅ `Ctrl+Space`, ΡΠΎΠ± Π·Π°ΠΏΡΡΡΠΈΡΠΈ Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ²Π½Π΅Π½Π½Ρ.
+
+ΠΠ»Π΅, Π½Π° ΠΆΠ°Π»Ρ, Π²ΠΈ Π½Π΅ ΠΎΡΡΠΈΠΌΠ°ΡΡΠ΅ Π½ΡΡΠΎΠ³ΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΎΠ³ΠΎ:
+
+<img src="/img/python-types/image01.png">
+
+### ΠΠΎΠ΄Π°ΠΉΡΠ΅ ΡΠΈΠΏΠΈ
+
+ΠΠ°Π²Π°ΠΉΡΠ΅ Π·ΠΌΡΠ½ΠΈΠΌΠΎ ΠΎΠ΄ΠΈΠ½ ΡΡΠ΄ΠΎΠΊ Π· ΠΏΠΎΠΏΠ΅ΡΠ΅Π΄Π½ΡΠΎΡ Π²Π΅ΡΡΡΡ.
+
+ΠΠΈ Π·ΠΌΡΠ½ΠΈΠΌΠΎ ΡΠ°ΠΌΠ΅ ΡΠ΅ΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΡΠ½ΠΊΡΡΡ, Π·:
+
+```Python
+ first_name, last_name
+```
+
+Π½Π°:
+
+```Python
+ first_name: str, last_name: str
+```
+
+ΠΡΡ Ρ Π²ΡΠ΅.
+
+Π¦Π΅ "type hints":
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial002.py!}
+```
+
+Π¦Π΅ Π½Π΅ ΡΠ΅ ΡΠ°ΠΌΠ΅, ΡΠΎ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ Π·Π½Π°ΡΠ΅Π½Ρ Π·Π° Π·Π°ΠΌΠΎΠ²ΡΡΠ²Π°Π½Π½ΡΠΌ, ΡΠΊ ΡΠ΅ Π±ΡΠ»ΠΎ Π± Π·:
+
+```Python
+ first_name="john", last_name="doe"
+```
+
+Π¦Π΅ Π·ΠΎΠ²ΡΡΠΌ ΡΠ½ΡΠ΅.
+
+ΠΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΠΌΠΎ Π΄Π²ΠΎΠΊΡΠ°ΠΏΠΊΡ (`:`), Π½Π΅ Π΄ΠΎΡΡΠ²Π½ΡΡ (`=`).
+
+Π Π΄ΠΎΠ΄Π°Π²Π°Π½Π½Ρ Π°Π½ΠΎΡΠ°ΡΡΡ ΡΠΈΠΏΡ Π·Π°Π·Π²ΠΈΡΠ°ΠΉ Π½Π΅ Π·ΠΌΡΠ½ΡΡ ΡΠΎΠ³ΠΎ, ΡΠΎ ΡΡΠ°Π»ΠΎΡΡ Π±ΠΈ Π±Π΅Π· Π½ΠΈΡ
.
+
+ΠΠ»Π΅ ΡΠ΅ΠΏΠ΅Ρ, ΡΡΠ²ΡΡΡ ΡΠΎ Π²ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ²ΠΎΡΠ΅Π½Π½Ρ ΡΡΠ½ΠΊΡΡΡ, Π°Π»Π΅ Π· Π°Π½ΠΎΡΠ°ΡΡΡΠΌΠΈ ΡΠΈΠΏΡΠ².
+
+Π ΡΠ΅ΠΉ ΠΆΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ, Π²ΠΈ ΡΠΏΡΠΎΠ±ΡΡΡΠ΅ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΠΈ Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ²Π½Π΅Π½Π½Ρ Π· Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ `Ctrl+Space` Ρ ΠΏΠΎΠ±Π°ΡΠΈΡΠ΅:
+
+<img src="/img/python-types/image02.png">
+
+Π Π°Π·ΠΎΠΌ Π· ΡΠΈΠΌ, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΊΡΡΡΡΠ²Π°ΡΠΈ, ΠΏΠ΅ΡΠ΅Π³Π»ΡΠ΄Π°ΡΠΈ ΠΎΠΏΡΡΡ, Π΄ΠΎΠΏΠΎΠΊΠΈ Π²ΠΈ Π½Π΅ Π·Π½Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΎΠ΄Π½Ρ, ΡΠΎ Π·Π²ΡΡΠΈΡΡ ΡΡ
ΠΎΠΆΠ΅:
+
+<img src="/img/python-types/image03.png">
+
+## ΠΡΠ»ΡΡΠ΅ ΠΌΠΎΡΠΈΠ²Π°ΡΡΡ
+
+ΠΠ΅ΡΠ΅Π²ΡΡΡΠ΅ ΡΡ ΡΡΠ½ΠΊΡΡΡ, Π²ΠΎΠ½Π° Π²ΠΆΠ΅ ΠΌΠ°Ρ Π°Π½ΠΎΡΠ°ΡΡΡ ΡΠΈΠΏΡ:
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial003.py!}
+```
+
+ΠΡΠΊΡΠ»ΡΠΊΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π·Π½Π°Ρ ΡΠΈΠΏΠΈ Π·ΠΌΡΠ½Π½ΠΈΡ
, Π²ΠΈ Π½Π΅ ΡΡΠ»ΡΠΊΠΈ ΠΎΡΡΠΈΠΌΠ°ΡΡΠ΅ Π°Π²ΡΠΎΠ·Π°ΠΏΠΎΠ²Π½Π΅Π½Π½Ρ, Π²ΠΈ ΡΠ°ΠΊΠΎΠΆ ΠΎΡΡΠΈΠΌΠ°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅Π²ΡΡΠΊΡ ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ:
+
+<img src="/img/python-types/image04.png">
+
+Π’Π΅ΠΏΠ΅Ρ Π²ΠΈ Π·Π½Π°ΡΡΠ΅, ΡΠΎΠ± Π²ΠΈΠΏΡΠ°Π²ΠΈΡΠΈ ΡΠ΅, Π²Π°ΠΌ ΠΏΠΎΡΡΡΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅ΡΠ²ΠΎΡΠΈΡΠΈ `age` Ρ ΡΡΡΠΎΠΊΡ Π· Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ `str(age)`:
+
+```Python hl_lines="2"
+{!../../../docs_src/python_types/tutorial004.py!}
+```
+
+## ΠΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ ΡΠΈΠΏΡΠ²
+
+Π©ΠΎΠΉΠ½ΠΎ Π²ΠΈ ΠΏΠΎΠ±Π°ΡΠΈΠ»ΠΈ ΠΎΡΠ½ΠΎΠ²Π½Π΅ ΠΌΡΡΡΠ΅ Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ Π°Π½ΠΎΡΠ°ΡΡΠΉ ΡΠΈΠΏΡ. Π―ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΡΠ½ΠΊΡΡΡ.
+
+Π¦Π΅ ΡΠ°ΠΊΠΎΠΆ ΠΎΡΠ½ΠΎΠ²Π½Π΅ ΠΌΡΡΡΠ΅, Π΄Π΅ Π²ΠΈ Π± ΡΡ
Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°Π»ΠΈ Ρ **FastAPI**.
+
+### ΠΡΠΎΡΡΡ ΡΠΈΠΏΠΈ
+
+ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΡΠ²Π°ΡΠΈ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Ρ ΡΠΈΠΏΠΈ Ρ Python, Π½Π΅ ΡΡΠ»ΡΠΊΠΈ `str`.
+
+ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄:
+
+* `int`
+* `float`
+* `bool`
+* `bytes`
+
+```Python hl_lines="1"
+{!../../../docs_src/python_types/tutorial005.py!}
+```
+
+### Generic-ΡΠΈΠΏΠΈ Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΈΠΏΡΠ²
+
+ΠΡΠ½ΡΡΡΡ Π΄Π΅ΡΠΊΡ ΡΡΡΡΠΊΡΡΡΠΈ Π΄Π°Π½ΠΈΡ
, ΡΠΊΡ ΠΌΠΎΠΆΡΡΡ ΠΌΡΡΡΠΈΡΠΈ ΡΠ½ΡΡ Π·Π½Π°ΡΠ΅Π½Π½Ρ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ `dict`, `list`, `set` ΡΠ° `tuple`. Π Π²Π½ΡΡΡΡΡΠ½Ρ Π·Π½Π°ΡΠ΅Π½Π½Ρ ΡΠ°ΠΊΠΎΠΆ ΠΌΠΎΠΆΡΡΡ ΠΌΠ°ΡΠΈ ΡΠ²ΡΠΉ ΡΠΈΠΏ.
+
+Π¦Ρ ΡΠΈΠΏΠΈ, ΡΠΊΡ ΠΌΠ°ΡΡΡ Π²Π½ΡΡΡΡΡΠ½Ρ ΡΠΈΠΏΠΈ, Π½Π°Π·ΠΈΠ²Π°ΡΡΡΡΡ "**generic**" ΡΠΈΠΏΠ°ΠΌΠΈ. Π ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ ΡΡ
ΠΌΠΎΠΆΠ½Π° Π½Π°Π²ΡΡΡ ΡΠ· Π²Π½ΡΡΡΡΡΠ½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
+
+Π©ΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ ΡΡ ΡΠΈΠΏΠΈ ΡΠ° Π²Π½ΡΡΡΡΡΠ½Ρ ΡΠΈΠΏΠΈ, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ Python `typing`. ΠΡΠ½ ΡΡΠ½ΡΡ ΡΠΏΠ΅ΡΡΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΠΈ Π°Π½ΠΎΡΠ°ΡΡΠΉ ΡΠΈΠΏΡΠ².
+
+#### ΠΠΎΠ²ΡΡΡ Π²Π΅ΡΡΡΡ Python
+
+Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΡΠ· Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½ΡΠΌ `typing` **ΡΡΠΌΡΡΠ½ΠΈΠΉ** Π· ΡΡΡΠΌΠ° Π²Π΅ΡΡΡΡΠΌΠΈ, Π²ΡΠ΄ Python 3.6 Π΄ΠΎ ΠΎΡΡΠ°Π½Π½ΡΡ
, Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈ Python 3.9, Python 3.10 ΡΠΎΡΠΎ.
+
+Π£ ΠΌΡΡΡ ΡΠΎΠ·Π²ΠΈΡΠΊΡ Python **Π½ΠΎΠ²ΡΡΡ Π²Π΅ΡΡΡΡ** ΠΌΠ°ΡΡΡ ΠΏΠΎΠΊΡΠ°ΡΠ΅Π½Ρ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ Π°Π½ΠΎΡΠ°ΡΡΠΉ ΡΠΈΠΏΡΠ² Ρ Π² Π±Π°Π³Π°ΡΡΠΎΡ
Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ
Π²Π°ΠΌ Π½Π°Π²ΡΡΡ Π½Π΅ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π±ΡΠ΄Π΅ ΡΠΌΠΏΠΎΡΡΡΠ²Π°ΡΠΈ ΡΠ° Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ `typing` Π΄Π»Ρ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ Π°Π½ΠΎΡΠ°ΡΡΠΉ ΡΠΈΠΏΡ.
+
+Π―ΠΊΡΠΎ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠ±ΡΠ°ΡΠΈ Π½ΠΎΠ²ΡΡΡ Π²Π΅ΡΡΡΡ Python Π΄Π»Ρ ΡΠ²ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ, Π²ΠΈ Π·ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠΎΡΠΈΡΡΠ°ΡΠΈΡΡ ΡΡΡΡ Π΄ΠΎΠ΄Π°ΡΠΊΠΎΠ²ΠΎΡ ΠΏΡΠΎΡΡΠΎΡΠΎΡ. ΠΠΈΠ²ΡΡΡΡΡ ΠΊΡΠ»ΡΠΊΠ° ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ² Π½ΠΈΠΆΡΠ΅.
+
+#### List (ΡΠΏΠΈΡΠΎΠΊ)
+
+ΠΠ°ΠΏΡΠΈΠΊΠ»Π°Π΄, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²ΠΈΠ·Π½Π°ΡΠΈΠΌΠΎ Π·ΠΌΡΠ½Π½Ρ, ΡΠΊΠ° Π±ΡΠ΄Π΅ `list` ΡΠ· `str`.
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ Π ΠΌΠΎΠ΄ΡΠ»Ρ `typing`, ΡΠΌΠΏΠΎΡΡΡΡΠΌΠΎ `List` (Π· Π²Π΅Π»ΠΈΠΊΠΎΡ Π»ΡΡΠ΅ΡΠΈ `L`):
+
+ ``` Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial006.py!}
+ ```
+
+ ΠΠ³ΠΎΠ»ΠΎΡΠΈΠΌΠΎ Π·ΠΌΡΠ½Π½Ρ Π· ΡΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄Π²ΠΎΠΊΡΠ°ΠΏΠΊΠΈ (`:`).
+
+ Π―ΠΊ ΡΠΈΠΏ Π²ΠΊΠ°ΠΆΠ΅ΠΌΠΎ `List`, ΡΠΊΠΈΠΉ Π²ΠΈ ΡΠΌΠΏΠΎΡΡΡΠ²Π°Π»ΠΈ Π· `typing`.
+
+ ΠΡΠΊΡΠ»ΡΠΊΠΈ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠΈΠΏΠΎΠΌ, ΡΠΊΠΈΠΉ ΠΌΡΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡ Π²Π½ΡΡΡΡΡΠ½Ρ ΡΠΈΠΏΠΈ, Π²ΠΈ ΠΏΠΎΠΌΡΡΠ°ΡΡΠ΅ ΡΡ
Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Ρ Π΄ΡΠΆΠΊΠΈ:
+
+ ```Python hl_lines="4"
+ {!> ../../../docs_src/python_types/tutorial006.py!}
+ ```
+
+=== "Python 3.9 Ρ Π²ΠΈΡΠ΅"
+
+ ΠΠ³ΠΎΠ»ΠΎΡΠΈΠΌΠΎ Π·ΠΌΡΠ½Π½Ρ Π· ΡΠΈΠΌ ΡΠ°ΠΌΠΈΠΌ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠΎΠΌ Π΄Π²ΠΎΠΊΡΠ°ΠΏΠΊΠΈ (`:`).
+
+ Π―ΠΊ ΡΠΈΠΏ Π²ΠΊΠ°ΠΆΠ΅ΠΌΠΎ `list`.
+
+ ΠΡΠΊΡΠ»ΡΠΊΠΈ ΡΠΏΠΈΡΠΎΠΊ Ρ ΡΠΈΠΏΠΎΠΌ, ΡΠΊΠΈΠΉ ΠΌΡΡΡΠΈΡΡ Π΄Π΅ΡΠΊΡ Π²Π½ΡΡΡΡΡΠ½Ρ ΡΠΈΠΏΠΈ, Π²ΠΈ ΠΏΠΎΠΌΡΡΠ°ΡΡΠ΅ ΡΡ
Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Ρ Π΄ΡΠΆΠΊΠΈ:
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial006_py39.py!}
+ ```
+
+!!! info
+ Π¦Ρ Π²Π½ΡΡΡΡΡΠ½Ρ ΡΠΈΠΏΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΈΡ
Π΄ΡΠΆΠΊΠ°Ρ
Π½Π°Π·ΠΈΠ²Π°ΡΡΡΡΡ "ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΡΠΈΠΏΡ".
+
+ Π£ ΡΡΠΎΠΌΡ Π²ΠΈΠΏΠ°Π΄ΠΊΡ, `str` ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΈΠΉ Ρ `List` (Π°Π±ΠΎ `list` Ρ Python 3.9 Ρ Π²ΠΈΡΠ΅).
+
+Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ: "Π·ΠΌΡΠ½Π½Π° `items` ΡΠ΅ `list`, Ρ ΠΊΠΎΠΆΠ΅Π½ Π· Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² Ρ ΡΡΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ - `str`".
+
+!!! tip
+ Π―ΠΊΡΠΎ Π²ΠΈ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΠ΅ Python 3.9 Ρ Π²ΠΈΡΠ΅, Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΡΡΡΠ±Π½ΠΎ ΡΠΌΠΏΠΎΡΡΡΠ²Π°ΡΠΈ `List` Π· `typing`, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ Π½Π°ΡΠΎΠΌΡΡΡΡ ΡΠΈΠΏ `list`.
+
+ΠΡΠΎΠ±ΠΈΠ²ΡΠΈ ΡΠ΅, Π²Π°Ρ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅ Π½Π°Π΄Π°ΡΠΈ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ Π½Π°Π²ΡΡΡ ΠΏΡΠ΄ ΡΠ°Ρ ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² Π·Ρ ΡΠΏΠΈΡΠΊΡ:
+
+<img src="/img/python-types/image05.png">
+
+ΠΠ΅Π· ΡΠΈΠΏΡΠ² ΡΡΠΎΠ³ΠΎ ΠΌΠ°ΠΉΠΆΠ΅ Π½Π΅ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ Π΄ΠΎΡΡΠ³ΡΠΈ.
+
+ΠΠ²Π΅ΡΠ½ΡΡΡ ΡΠ²Π°Π³Ρ, ΡΠΎ Π·ΠΌΡΠ½Π½Π° `item` Ρ ΠΎΠ΄Π½ΠΈΠΌ ΡΠ· Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΠ² Ρ ΡΠΏΠΈΡΠΊΡ `items`.
+
+Π Π²ΡΠ΅ ΠΆ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π·Π½Π°Ρ, ΡΠΎ ΡΠ΅ `str`, Ρ Π½Π°Π΄Π°Ρ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ.
+
+#### Tuple and Set (ΠΊΠΎΡΡΠ΅ΠΆ ΡΠ° Π½Π°Π±ΡΡ)
+
+ΠΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ Π·ΡΠΎΠ±ΠΈΡΠΈ ΡΠ΅ ΠΆ ΡΠ°ΠΌΠ΅, ΡΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ `tuple` Ρ `set`:
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial007.py!}
+ ```
+
+=== "Python 3.9 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial007_py39.py!}
+ ```
+
+Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ:
+
+* ΠΠΌΡΠ½Π½Π° `items_t` ΡΠ΅ `tuple` Π· 3 Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ, `int`, ΡΠ΅ `int`, ΡΠ° `str`.
+* ΠΠΌΡΠ½Π½Π° `items_s` ΡΠ΅ `set`, Ρ ΠΊΠΎΠΆΠ΅Π½ ΠΉΠΎΠ³ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½Ρ ΡΠΈΠΏΡ `bytes`.
+
+#### Dict (ΡΠ»ΠΎΠ²Π½ΠΈΠΊ)
+
+Π©ΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ `dict`, Π²Π°ΠΌ ΠΏΠΎΡΡΡΠ±Π½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ 2 ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠΈΠΏΡ, ΡΠΎΠ·Π΄ΡΠ»Π΅Π½Ρ ΠΊΠΎΠΌΠ°ΠΌΠΈ.
+
+ΠΠ΅ΡΡΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΡ Π΄Π»Ρ ΠΊΠ»ΡΡΠ° Ρ `dict`.
+
+ΠΡΡΠ³ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠΈΠΏΡ Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½Π½Ρ Ρ `dict`:
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial008.py!}
+ ```
+
+=== "Python 3.9 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial008_py39.py!}
+ ```
+
+Π¦Π΅ ΠΎΠ·Π½Π°ΡΠ°Ρ:
+
+* ΠΠΌΡΠ½Π½Π° `prices` ΡΠ΅ `dict`:
+ * ΠΠ»ΡΡΡ ΡΡΠΎΠ³ΠΎ `dict` ΡΠΈΠΏΡ `str` (Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, Π½Π°Π·Π²Π° ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡ).
+ * ΠΠ½Π°ΡΠ΅Π½Π½Ρ ΡΡΠΎΠ³ΠΎ `dict` ΡΠΈΠΏΡ `float` (Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, ΡΡΠ½Π° ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡ).
+
+#### Union (ΠΎΠ±'ΡΠ΄Π½Π°Π½Π½Ρ)
+
+ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ, ΡΠΎ Π·ΠΌΡΠ½Π½Π° ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ Π±ΡΠ΄Ρ-ΡΠΊΠΈΠΌ ΡΠ· **ΠΊΡΠ»ΡΠΊΠΎΡ
ΡΠΈΠΏΡΠ²**, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, `int` Π°Π±ΠΎ `str`.
+
+Π£ Python 3.6 Ρ Π²ΠΈΡΠ΅ (Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈ Python 3.10) Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΠΈΠΏ `Union` Π· `typing` Ρ Π²ΡΡΠ°Π²Π»ΡΡΠΈ Π² ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½Ρ Π΄ΡΠΆΠΊΠΈ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ ΡΠΈΠΏΠΈ, ΡΠΊΡ ΠΌΠΎΠΆΠ½Π° ΠΏΡΠΈΠΉΠ½ΡΡΠΈ.
+
+Π£ Python 3.10 ΡΠ°ΠΊΠΎΠΆ Ρ **Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΈΠΉ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ**, Ρ ΡΠΊΠΎΠΌΡ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄ΡΠ»ΠΈΡΠΈ ΠΌΠΎΠΆΠ»ΠΈΠ²Ρ ΡΠΈΠΏΠΈ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ <abbr title='ΡΠ°ΠΊΠΎΠΆ Π½Π°Π·ΠΈΠ²Π°ΡΡΡ Β«ΠΏΠΎΠ±ΡΡΠΎΠ²ΠΈΠΌ "Π°Π±ΠΎ" ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌΒ», Π°Π»Π΅ ΡΠ΅ Π·Π½Π°ΡΠ΅Π½Π½Ρ ΡΡΡ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Π΅'>Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΡ ΡΠΌΡΠ³ΠΈ (`|`)</abbr>.
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial008b.py!}
+ ```
+
+=== "Python 3.10 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial008b_py310.py!}
+ ```
+
+Π ΠΎΠ±ΠΎΡ
Π²ΠΈΠΏΠ°Π΄ΠΊΠ°Ρ
ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ°Ρ, ΡΠΎ `item` ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ `int` Π°Π±ΠΎ `str`.
+
+#### Possibly `None` (Optional)
+
+ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½Π½Ρ ΠΌΠΎΠΆΠ΅ ΠΌΠ°ΡΠΈ ΡΠΈΠΏ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄ `str`, Π°Π»Π΅ ΡΠ°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ `None`.
+
+Π£ Python 3.6 Ρ Π²ΠΈΡΠ΅ (Π²ΠΊΠ»ΡΡΠ°ΡΡΠΈ Python 3.10) Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ ΠΉΠΎΠ³ΠΎ, ΡΠΌΠΏΠΎΡΡΡΠ²Π°Π²ΡΠΈ ΡΠ° Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΠΈ `Optional` Π· ΠΌΠΎΠ΄ΡΠ»Ρ `typing`.
+
+```Python hl_lines="1 4"
+{!../../../docs_src/python_types/tutorial009.py!}
+```
+
+ΠΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ `Optional[str]` Π·Π°ΠΌΡΡΡΡ ΠΏΡΠΎΡΡΠΎ `str` Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΡ Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΡΠΈ Π²Π°ΠΌ Π²ΠΈΡΠ²ΠΈΡΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ, ΠΊΠΎΠ»ΠΈ Π²ΠΈ ΠΌΠΎΠ³Π»ΠΈ Π± Π²Π²Π°ΠΆΠ°ΡΠΈ, ΡΠΎ Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ Π·Π°Π²ΠΆΠ΄ΠΈ Ρ `str`, Ρ
ΠΎΡΠ° Π½Π°ΡΠΏΡΠ°Π²Π΄Ρ Π²ΠΎΠ½ΠΎ ΡΠ°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ `None`.
+
+`Optional[Something]` Π½Π°ΡΠΏΡΠ°Π²Π΄Ρ Ρ ΡΠΊΠΎΡΠΎΡΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ `Union[Something, None]`, Π²ΠΎΠ½ΠΈ Π΅ΠΊΠ²ΡΠ²Π°Π»Π΅Π½ΡΠ½Ρ.
+
+Π¦Π΅ ΡΠ°ΠΊΠΎΠΆ ΠΎΠ·Π½Π°ΡΠ°Ρ, ΡΠΎ Π² Python 3.10 Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ `Something | None`:
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial009.py!}
+ ```
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅ - Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π°"
+
+ ```Python hl_lines="1 4"
+ {!> ../../../docs_src/python_types/tutorial009b.py!}
+ ```
+
+=== "Python 3.10 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python hl_lines="1"
+ {!> ../../../docs_src/python_types/tutorial009_py310.py!}
+ ```
+
+#### Generic ΡΠΈΠΏΠΈ
+
+Π¦Ρ ΡΠΈΠΏΠΈ, ΡΠΊΡ ΠΏΡΠΈΠΉΠΌΠ°ΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠΈΠΏΡ Ρ ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΈΡ
Π΄ΡΠΆΠΊΠ°Ρ
, Π½Π°Π·ΠΈΠ²Π°ΡΡΡΡΡ **Generic types** or **Generics**, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄:
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ * `List`
+ * `Tuple`
+ * `Set`
+ * `Dict`
+ * `Union`
+ * `Optional`
+ * ...ΡΠ° ΡΠ½ΡΡ.
+
+=== "Python 3.9 Ρ Π²ΠΈΡΠ΅"
+
+ ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΡ ΡΠ°ΠΌΡ Π²Π±ΡΠ΄ΠΎΠ²Π°Π½Ρ ΡΠΈΠΏΠΈ, ΡΠΊ generic (Π· ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΈΠΌΠΈ Π΄ΡΠΆΠΊΠ°ΠΌΠΈ ΡΠ° ΡΠΈΠΏΠ°ΠΌΠΈ Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ):
+
+ * `list`
+ * `tuple`
+ * `set`
+ * `dict`
+
+ Π ΡΠ΅ ΡΠ°ΠΌΠ΅, ΡΠΎ ΠΉ Ρ Python 3.6, ΡΠ· ΠΌΠΎΠ΄ΡΠ»Ρ `typing`:
+
+ * `Union`
+ * `Optional`
+ * ...ΡΠ° ΡΠ½ΡΡ.
+
+=== "Python 3.10 Ρ Π²ΠΈΡΠ΅"
+
+ ΠΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ ΡΡ ΡΠ°ΠΌΡ Π²Π±ΡΠ΄ΠΎΠ²Π°Π½Ρ ΡΠΈΠΏΠΈ, ΡΠΊ generic (Π· ΠΊΠ²Π°Π΄ΡΠ°ΡΠ½ΠΈΠΌΠΈ Π΄ΡΠΆΠΊΠ°ΠΌΠΈ ΡΠ° ΡΠΈΠΏΠ°ΠΌΠΈ Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ):
+
+ * `list`
+ * `tuple`
+ * `set`
+ * `dict`
+
+ Π ΡΠ΅ ΡΠ°ΠΌΠ΅, ΡΠΎ ΠΉ Ρ Python 3.6, ΡΠ· ΠΌΠΎΠ΄ΡΠ»Ρ `typing`:
+
+ * `Union`
+ * `Optional` (ΡΠ°ΠΊ ΡΠ°ΠΌΠΎ ΡΠΊ Ρ Python 3.6)
+ * ...ΡΠ° ΡΠ½ΡΡ.
+
+ Π£ Python 3.10, ΡΠΊ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π²ΠΈΠΊΠΎΡΠΈΡΡΠ°Π½Π½Ρ `Union` ΡΠ° `Optional`, Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΠ²Π°ΡΠΈ <abbr title='ΡΠ°ΠΊΠΎΠΆ Π½Π°Π·ΠΈΠ²Π°ΡΡΡ Β«ΠΏΠΎΠ±ΡΡΠΎΠ²ΠΈΠΌ "Π°Π±ΠΎ" ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌΒ», Π°Π»Π΅ ΡΠ΅ Π·Π½Π°ΡΠ΅Π½Π½Ρ ΡΡΡ Π½Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Π΅'>Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½Ρ ΡΠΌΡΠ³Ρ (`|`)</abbr> ΡΠΎΠ± ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ ΠΎΠ±'ΡΠ΄Π½Π°Π½Π½Ρ ΡΠΈΠΏΡΠ².
+
+### ΠΠ»Π°ΡΠΈ ΡΠΊ ΡΠΈΠΏΠΈ
+
+ΠΠΈ ΡΠ°ΠΊΠΎΠΆ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ ΠΊΠ»Π°Ρ ΡΠΊ ΡΠΈΠΏ Π·ΠΌΡΠ½Π½ΠΎΡ.
+
+Π‘ΠΊΠ°ΠΆΡΠΌΠΎ, Ρ Π²Π°Ρ Ρ ΠΊΠ»Π°Ρ `Person` Π· ΡΠΌΚΌΡΠΌ:
+
+```Python hl_lines="1-3"
+{!../../../docs_src/python_types/tutorial010.py!}
+```
+
+ΠΠΎΡΡΠΌ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ³ΠΎΠ»ΠΎΡΠΈΡΠΈ Π·ΠΌΡΠ½Π½Ρ ΡΠΈΠΏΡ `Person`:
+
+```Python hl_lines="6"
+{!../../../docs_src/python_types/tutorial010.py!}
+```
+
+Π Π·Π½ΠΎΠ²Ρ ΠΆ ΡΠ°ΠΊΠΈ, Π²ΠΈ ΠΎΡΡΠΈΠΌΡΡΡΠ΅ Π²ΡΡ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°:
+
+<img src="/img/python-types/image06.png">
+
+## Pydantic ΠΌΠΎΠ΄Π΅Π»Ρ
+
+<a href="https://pydantic-docs.helpmanual.io/" class="external-link" target="_blank">Pydantic</a> ΡΠ΅ Π±ΡΠ±Π»ΡΠΎΡΠ΅ΠΊΠ° Python Π΄Π»Ρ Π²Π°Π»ΡΠ΄Π°ΡΡΡ Π΄Π°Π½ΠΈΡ
.
+
+ΠΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡΡΡΡΠ΅ Β«ΡΠΎΡΠΌΡΒ» Π΄Π°Π½ΠΈΡ
ΡΠΊ ΠΊΠ»Π°ΡΠΈ Π· Π°ΡΡΠΈΠ±ΡΡΠ°ΠΌΠΈ.
+
+Π ΠΊΠΎΠΆΠ΅Π½ Π°ΡΡΠΈΠ±ΡΡ ΠΌΠ°Ρ ΡΠΈΠΏ.
+
+ΠΠΎΡΡΠΌ Π²ΠΈ ΡΡΠ²ΠΎΡΡΡΡΠ΅ Π΅ΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡ Π· Π΄Π΅ΡΠΊΠΈΠΌΠΈ Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌΠΈ, Ρ Π²ΡΠ½ ΠΏΠ΅ΡΠ΅Π²ΡΡΠΈΡΡ ΡΡ Π·Π½Π°ΡΠ΅Π½Π½Ρ, ΠΏΠ΅ΡΠ΅ΡΠ²ΠΎΡΠΈΡΡ ΡΡ
Ρ Π²ΡΠ΄ΠΏΠΎΠ²ΡΠ΄Π½ΠΈΠΉ ΡΠΈΠΏ (ΡΠΊΡΠΎ Ρ ΠΏΠΎΡΡΠ΅Π±Π°) Ρ Π½Π°Π΄Π°ΡΡΡ Π²Π°ΠΌ ΠΎΠ±βΡΠΊΡ Π· ΡΡΡΠΌΠ° Π΄Π°Π½ΠΈΠΌΠΈ.
+
+Π Π²ΠΈ ΠΎΡΡΠΈΠΌΡΡΡΠ΅ Π²ΡΡ ΠΏΡΠ΄ΡΡΠΈΠΌΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ° Π· ΡΠΈΠΌ ΠΎΡΡΠΈΠΌΠ°Π½ΠΈΠΌ ΠΎΠ±βΡΠΊΡΠΎΠΌ.
+
+ΠΡΠΈΠΊΠ»Π°Π΄ Π· Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΡΡ Pydantic:
+
+=== "Python 3.6 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011.py!}
+ ```
+
+=== "Python 3.9 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011_py39.py!}
+ ```
+
+=== "Python 3.10 Ρ Π²ΠΈΡΠ΅"
+
+ ```Python
+ {!> ../../../docs_src/python_types/tutorial011_py310.py!}
+ ```
+
+!!! info
+ Π©ΠΎΠ± Π΄ΡΠ·Π½Π°ΡΠΈΡΡ Π±ΡΠ»ΡΡΠ΅ ΠΏΡΠΎ <a href="https://pydantic-docs.helpmanual.io/" class="external-link" target="_blank">Pydantic, ΠΏΠ΅ΡΠ΅Π³Π»ΡΠ½ΡΡΠ΅ ΠΉΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΡΡ</a>.
+
+**FastAPI** ΠΏΠΎΠ²Π½ΡΡΡΡ Π±Π°Π·ΡΡΡΡΡΡ Π½Π° Pydantic.
+
+ΠΠΈ ΠΏΠΎΠ±Π°ΡΠΈΡΠ΅ Π½Π°Π±Π°Π³Π°ΡΠΎ Π±ΡΠ»ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ Π²ΡΡΠΎΠ³ΠΎ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΡ Π² [Tutorial - User Guide](tutorial/index.md){.internal-link target=_blank}.
+
+## ΠΠ½ΠΎΡΠ°ΡΡΡ ΡΠΈΠΏΡΠ² Ρ **FastAPI**
+
+**FastAPI** Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡ ΡΡ ΠΏΡΠ΄ΠΊΠ°Π·ΠΊΠΈ Π΄Π»Ρ Π²ΠΈΠΊΠΎΠ½Π°Π½Π½Ρ ΠΊΡΠ»ΡΠΊΠΎΡ
ΡΠ΅ΡΠ΅ΠΉ.
+
+Π **FastAPI** Π²ΠΈ ΠΎΠ³ΠΎΠ»ΠΎΡΡΡΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π· ΠΏΡΠ΄ΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ ΡΠΈΠΏΡ, Ρ ΠΎΡΡΠΈΠΌΡΡΡΠ΅:
+
+* **ΠΡΠ΄ΡΡΠΈΠΌΠΊΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ°**.
+* **ΠΠ΅ΡΠ΅Π²ΡΡΠΊΡ ΡΠΈΠΏΡΠ²**.
+
+...Ρ **FastAPI** Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡ ΡΡ ΡΠ°ΠΌΡ ΠΎΠ³ΠΎΠ»ΠΎΡΠ΅Π½Π½Ρ Π΄Π»Ρ:
+
+* **ΠΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ Π²ΠΈΠΌΠΎΠ³**: Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ² ΡΠ»ΡΡ
Ρ Π·Π°ΠΏΠΈΡΡ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ² Π·Π°ΠΏΠΈΡΡ, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡΠ², ΡΡΠ», Π·Π°Π»Π΅ΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΎΡΠΎ.
+* **ΠΠ΅ΡΠ΅ΡΠ²ΠΎΡΠ΅Π½Π½Ρ Π΄Π°Π½ΠΈΡ
**: ΡΠ· Π·Π°ΠΏΠΈΡΡ Π² Π½Π΅ΠΎΠ±Ρ
ΡΠ΄Π½ΠΈΠΉ ΡΠΈΠΏ.
+* **ΠΠ΅ΡΠ΅Π²ΡΡΠΊΠ° Π΄Π°Π½ΠΈΡ
**: ΡΠΎ Π½Π°Π΄Ρ
ΠΎΠ΄ΡΡΡ Π²ΡΠ΄ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π·Π°ΠΏΠΈΡΡ:
+ * ΠΠ΅Π½Π΅ΡΡΠ²Π°Π½Π½Ρ **Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈΡ
ΠΏΠΎΠΌΠΈΠ»ΠΎΠΊ**, ΡΠΎ ΠΏΠΎΠ²Π΅ΡΡΠ°ΡΡΡΡΡ ΠΊΠ»ΡΡΠ½ΡΡ, ΠΊΠΎΠ»ΠΈ Π΄Π°Π½Ρ Π½Π΅Π΄ΡΠΉΡΠ½Ρ.
+* **ΠΠΎΠΊΡΠΌΠ΅Π½ΡΡΠ²Π°Π½Π½Ρ** API Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ OpenAPI:
+ * ΡΠΊΠΈΠΉ ΠΏΠΎΡΡΠΌ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡΡΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡ ΡΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΡΡ ΠΊΠΎΡΠΈΡΡΡΠ²Π°Π»ΡΠ½ΠΈΡΡΠΊΠΈΡ
ΡΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡΠ².
+
+ΠΡΠ΅ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π·Π΄Π°ΡΠΈΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΠΈΠΌ. ΠΠ΅ Ρ
Π²ΠΈΠ»ΡΠΉΡΠ΅ΡΡ. ΠΠΈ ΠΏΠΎΠ±Π°ΡΠΈΡΠ΅ Π²ΡΠ΅ ΡΠ΅ Π² Π΄ΡΡ Π² [Π’ΡΡΠΎΡΡΠ°Π» - ΠΠΎΡΡΠ±Π½ΠΈΠΊ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΠ°](tutorial/index.md){.internal-link target=_blank}.
+
+ΠΠ°ΠΆΠ»ΠΈΠ²ΠΎ ΡΠ΅, ΡΠΎ Π·Π° Π΄ΠΎΠΏΠΎΠΌΠΎΠ³ΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ
ΡΠΈΠΏΡΠ² Python Π² ΠΎΠ΄Π½ΠΎΠΌΡ ΠΌΡΡΡΡ (Π·Π°ΠΌΡΡΡΡ ΡΠΎΠ³ΠΎ, ΡΠΎΠ± Π΄ΠΎΠ΄Π°Π²Π°ΡΠΈ Π±ΡΠ»ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ², Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΡΠ² ΡΠΎΡΠΎ), **FastAPI** Π·ΡΠΎΠ±ΠΈΡΡ Π±Π°Π³Π°ΡΠΎ ΡΠΎΠ±ΠΎΡΠΈ Π·Π° Π²Π°Ρ.
+
+!!! info
+ Π―ΠΊΡΠΎ Π²ΠΈ Π²ΠΆΠ΅ ΠΏΡΠΎΠΉΡΠ»ΠΈ Π²Π΅ΡΡ Π½Π°Π²ΡΠ°Π»ΡΠ½ΠΈΠΉ ΠΏΠΎΡΡΠ±Π½ΠΈΠΊ Ρ ΠΏΠΎΠ²Π΅ΡΠ½ΡΠ»ΠΈΡΡ, ΡΠΎΠ± Π΄ΡΠ·Π½Π°ΡΠΈΡΡ Π±ΡΠ»ΡΡΠ΅ ΠΏΡΠΎ ΡΠΈΠΏΠΈ, ΠΎΡΡ Ρ
ΠΎΡΠΎΡΠΈΠΉ ΡΠ΅ΡΡΡΡ <a href="https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html" class="external-link" target="_blank">"ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ°" Π²ΡΠ΄ `mypy`</a>.