committed by
GitHub
1 changed files with 537 additions and 0 deletions
@ -0,0 +1,537 @@ |
|||
# āĻĒāĻžāĻāĻĨāύ āĻāϰ <abbr title="āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ āĻāĻŋ āϧāϰāύā§āϰ āĻĄā§āĻāĻž āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤">āĻāĻžāĻāĻĒā§āϏ</abbr> āĻĒāϰāĻŋāĻāĻŋāϤāĻŋ |
|||
|
|||
Python-āĻ āĻāĻā§āĻāĻŋāĻ "āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ" (āϝāĻž "āĻāĻžāĻāĻĒ āĻ
ā§āϝāĻžāύā§āĻā§āĻļāύ" āύāĻžāĻŽā§āĻ āĻĒāϰāĻŋāĻāĻŋāϤ) āĻāϰ āĻāύā§āϝ āϏāĻžāĻĒā§āϰā§āĻ āϰāϝāĻŧā§āĻā§āĨ¤ |
|||
|
|||
āĻāĻ **"āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ"** āĻŦāĻž āĻ
ā§āϝāĻžāύā§āĻā§āĻļāύāĻā§āϞāĻŋ āĻāĻ āϧāϰāĻŖā§āϰ āĻŦāĻŋāĻļā§āώ <abbr title="āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻšāϞ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻŋāĻ āĻāĻžāώāĻžāϝāĻŧ āĻā§āĻĄ āϞā§āĻāĻžāϰ āύāĻŋāϝāĻŧāĻŽ āĻ āĻāĻ āύāĨ¤">āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ</abbr> āϝāĻž āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ <abbr title="āϝā§āĻŽāύ: str, int, float, bool">āĻāĻžāĻāĻĒ</abbr> āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĻā§āϝāĻŧāĨ¤ |
|||
|
|||
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻāĻžāĻāĻĒ āĻā§āώāĻŖāĻž āĻāϰāϞā§, āĻāĻĄāĻŋāĻāϰ āĻāĻŦāĻ āĻā§āϞāĻā§āϞāĻŋ āĻāĻĒāύāĻžāĻā§ āĻāϰāĻ āĻāĻžāϞ⧠āϏāĻžāĻĒā§āϰā§āĻ āĻĻāĻŋāϤ⧠āĻĒāĻžāϰā§āĨ¤ |
|||
|
|||
āĻāĻāĻŋ āĻĒāĻžāĻāĻĨāύ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻāĻŋ āĻĻā§āϰā§āϤ **āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ / āϰāĻŋāĻĢā§āϰā§āĻļāĻžāϰ** āĻŽāĻžāϤā§āϰāĨ¤ āĻāĻāĻŋ **FastAPI** āĻāϰ āϏāĻžāĻĨā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āύā§āϝā§āύāϤāĻŽ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧāϤāĻž āĻāĻāĻžāϰ āĻāϰā§... āϝāĻž āĻāϏāϞ⧠āĻā§āĻŦ āĻāĻāĻāĻž āĻŦā§āĻļāĻŋ āύāĻžāĨ¤ |
|||
|
|||
**FastAPI** āĻāĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāĻā§āϞāĻŋāϰ āĻāĻĒāϰ āĻāĻŋāϤā§āϤāĻŋ āĻāϰ⧠āύāĻŋāϰā§āĻŽāĻŋāϤ, āϝāĻž āĻāĻāĻŋāĻā§ āĻ
āύā§āĻ āϏā§āĻŦāĻŋāϧāĻž āĻāĻŦāĻ āϞāĻžāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ |
|||
|
|||
āϤāĻŦā§, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻāύ⧠**FastAPI** āĻŦā§āϝāĻŦāĻšāĻžāϰ āύāĻžāĻ āĻāϰā§āύ, āϤāĻŦā§āĻ āĻāĻā§āϞāĻŋ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻāĻā§ āĻļā§āĻāĻž āĻāĻĒāύāĻžāϰ āĻāĻĒāĻāĻžāϰ⧠āĻāϏāĻŦā§āĨ¤ |
|||
|
|||
!!! Note |
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻāĻāύ Python āĻŦāĻŋāĻļā§āώāĻā§āĻ āĻšāύ, āĻāĻŦāĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āϏāĻŦāĻāĻŋāĻā§ āĻāĻžāύā§āύ, āϤāĻžāĻšāϞ⧠āĻĒāϰāĻŦāϰā§āϤ⧠āĻ
āϧā§āϝāĻžāϝāĻŧā§ āĻāϞ⧠āϝāĻžāύāĨ¤ |
|||
|
|||
## āĻĒā§āϰā§āϰāĻŖāĻž |
|||
|
|||
āĻāϞā§āύ āĻāĻāĻāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋāϝāĻŧā§ āĻļā§āϰ⧠āĻāϰāĻŋ: |
|||
|
|||
```Python |
|||
{!../../../docs_src/python_types/tutorial001.py!} |
|||
``` |
|||
|
|||
āĻāĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĻāĻŋ āĻāϞ āĻāϰāϞ⧠āĻāĻāĻāĻĒā§āĻ āĻšāϝāĻŧ: |
|||
|
|||
``` |
|||
John Doe |
|||
``` |
|||
|
|||
āĻĢāĻžāĻāĻļāύāĻāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻāĻžāĻ āĻāϰā§: |
|||
|
|||
* `first_name` āĻāĻŦāĻ `last_name` āύā§āϝāĻŧāĨ¤ |
|||
* āĻĒā§āϰāϤāĻŋāĻāĻŋāϰ āĻĒā§āϰāĻĨāĻŽ āĻ
āĻā§āώāϰāĻā§ `title()` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ
āĻā§āώāϰ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§āĨ¤ |
|||
* āϤāĻžāĻĻā§āϰāĻā§ āĻŽāĻžāĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āϏā§āĻĒā§āϏ āĻĻāĻŋāϝāĻŧā§ <abbr title="āĻāĻāĻāĻžāϰ āĻĒāϰ⧠āĻāĻāĻāĻž āĻāĻāϤā§āϰāĻŋāϤ āĻāϰāĻž">concatenate</abbr> āĻāϰā§āĨ¤ |
|||
|
|||
```Python hl_lines="2" |
|||
{!../../../docs_src/python_types/tutorial001.py!} |
|||
``` |
|||
|
|||
### āĻāĻāĻŋ āϏāĻŽā§āĻĒāĻžāĻĻāύāĻž āĻāϰā§āύ |
|||
|
|||
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āϏāĻžāϧāĻžāϰāĻŖ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽāĨ¤ |
|||
|
|||
āĻāĻŋāύā§āϤ⧠āĻāĻāύ āĻāϞā§āĻĒāύāĻž āĻāϰā§āύ āϝ⧠āĻāĻĒāύāĻŋ āĻāĻāĻŋ āĻļā§āϰ⧠āĻĨā§āĻā§ āϞāĻŋāĻāĻāĻŋāϞā§āύāĨ¤ |
|||
|
|||
āĻāĻ āĻĒāϰā§āϝāĻžāϝāĻŧā§ āĻāĻĒāύāĻŋ āĻĢāĻžāĻāĻļāύā§āϰ āϏāĻāĻā§āĻāĻž āĻļā§āϰ⧠āĻāϰā§āĻāĻŋāϞā§āύ, āĻāĻĒāύāĻžāϰ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻā§āϞāĻŋ āĻĒā§āϰāϏā§āϤā§āϤ āĻāĻŋāϞ... |
|||
|
|||
āĻāĻŋāύā§āϤ⧠āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻžāĻā§ "āϏā§āĻ method āĻāϞ āĻāϰāϤ⧠āĻšāĻŦā§ āϝāĻž āĻĒā§āϰāĻĨāĻŽ āĻ
āĻā§āώāϰāĻā§ āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ āĻ
āĻā§āώāϰ⧠āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§"āĨ¤ |
|||
|
|||
āĻāĻāĻž āĻāĻŋ `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 |
|||
``` |
|||
|
|||
āĻŦā§āϝāĻžāϏāĨ¤ |
|||
|
|||
āĻāĻā§āϞāĻŋāĻ "āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ": |
|||
|
|||
```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** āĻāϰ āĻā§āώā§āϤā§āϰā§āĻ āĻāĻāĻāĨ¤ |
|||
|
|||
### āϏāĻŋāĻŽā§āĻĒāϞ āĻāĻžāĻāĻĒ |
|||
|
|||
āĻāĻĒāύāĻŋ `str` āĻāĻžāĻĄāĻŧāĻžāĻ āϏāĻŽāϏā§āϤ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āĻĒāĻžāĻāĻĨāύ āĻāĻžāĻāĻĒ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻĒāύāĻŋ āĻāĻā§āϞ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: |
|||
|
|||
* `int` |
|||
* `float` |
|||
* `bool` |
|||
* `bytes` |
|||
|
|||
```Python hl_lines="1" |
|||
{!../../../docs_src/python_types/tutorial005.py!} |
|||
``` |
|||
|
|||
### āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āϏāĻš āĻā§āύā§āϰāĻŋāĻ āĻāĻžāĻāĻĒ |
|||
|
|||
āĻāĻŋāĻā§ āĻĄāĻžāĻāĻž āϏā§āĻā§āϰāĻžāĻāĻāĻžāϰ āĻ
āύā§āϝāĻžāύā§āϝ āĻŽāĻžāύ āϧāĻžāϰāĻŖ āĻāϰāϤ⧠āĻĒāĻžāϰā§, āϝā§āĻŽāύ `dict`, `list`, `set` āĻāĻŦāĻ `tuple`āĨ¤ āĻāĻŦāĻ āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āĻŽāĻžāύāĻā§āϞā§āϰāĻ āύāĻŋāĻā§āĻĻā§āϰ āĻāĻžāĻāĻĒ āĻĨāĻžāĻāϤ⧠āĻĒāĻžāϰā§āĨ¤ |
|||
|
|||
āĻāĻ āϧāϰāύā§āϰ āĻāĻžāĻāĻĒāĻā§āϞāĻŋāĻā§ āĻŦāϞāĻž āĻšāϝāĻŧ "**āĻā§āύā§āϰāĻŋāĻ**" āĻāĻžāĻāĻĒ āĻāĻŦāĻ āĻāĻā§āϞāĻŋāĻā§ āϤāĻžāĻĻā§āϰ āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āϏāĻš āĻā§āώāĻŖāĻž āĻāϰāĻž āϏāĻŽā§āĻāĻŦāĨ¤ |
|||
|
|||
āĻāĻ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āĻāĻŦāĻ āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āĻā§āώāĻŖāĻž āĻāϰāϤā§, āĻāĻĒāύāĻŋ Python āĻŽāĻĄāĻŋāĻāϞ `typing` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻļā§āώāĻāĻžāĻŦā§ āĻāĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāĻā§āϞāĻŋ āϏāĻŽāϰā§āĻĨāύ āĻāϰāĻžāϰ āĻāύā§āϝ āϰāϝāĻŧā§āĻā§āĨ¤ |
|||
|
|||
#### Python āĻāϰ āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖ |
|||
|
|||
`typing` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏāĻāĻŋ Python 3.6 āĻĨā§āĻā§ āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋ āĻĒāϰā§āϝāύā§āϤ, āĻ
āϰā§āĻĨāĻžā§ Python 3.9, Python 3.10 āĻāϤā§āϝāĻžāĻĻāĻŋ āϏāĻš āϏāĻāϞ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āϏāĻžāĻĨā§ **āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ**āĨ¤ |
|||
|
|||
Python āϝāϤ āĻāĻāĻŋāϝāĻŧā§ āϝāĻžāĻā§āĻā§, **āύāϤā§āύ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋ** āĻāĻ āĻāĻžāĻāĻĒ āĻ
ā§āϝāĻžāύā§āĻā§āĻļāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ āϤāϤ āĻāύā§āύāϤ āϏāĻžāĻĒā§āϰā§āĻ āύāĻŋāϝāĻŧā§ āĻāϏāĻā§ āĻāĻŦāĻ āĻ
āύā§āĻ āĻā§āώā§āϤā§āϰ⧠āĻāĻĒāύāĻžāĻā§ āĻāĻžāĻāĻĒ āĻ
ā§āϝāĻžāύā§āĻā§āĻļāύ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠`typing` āĻŽāĻĄāĻŋāĻāϞ āĻāĻŽā§āĻĒā§āϰā§āĻ āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§āĻāύ āĻšāĻŦā§ āύāĻžāĨ¤ |
|||
|
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āĻā§āĻā§āϰ āĻāύā§āϝ Python-āĻāϰ āĻāϰāĻ āϏāĻžāĻŽā§āĻĒā§āϰāϤāĻŋāĻ āϏāĻāϏā§āĻāϰāĻŖ āύāĻŋāϰā§āĻŦāĻžāĻāύ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϤāĻžāĻšāϞ⧠āĻāĻĒāύāĻŋ āϏā§āĻ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āϏāϰāϞāϤāĻž āĻĨā§āĻā§ āϏā§āĻŦāĻŋāϧāĻž āύāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§āύāĨ¤ |
|||
|
|||
āĻĄāĻā§āϏ⧠āϰāϝāĻŧā§āĻā§ Python-āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āϏāĻžāĻĨā§ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋ (āϝāĻāύ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻāĻā§)āĨ¤ |
|||
|
|||
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, "**Python 3.6+**" āĻŽāĻžāύ⧠āĻāĻāĻŋ Python 3.6 āĻŦāĻž āϤāĻžāϰ āĻāĻĒāϰ⧠āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ (āϝāĻžāϰ āĻŽāϧā§āϝ⧠3.7, 3.8, 3.9, 3.10, āĻāϤā§āϝāĻžāĻĻāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ)āĨ¤ āĻāĻŦāĻ "**Python 3.9+**" āĻŽāĻžāύ⧠āĻāĻāĻŋ Python 3.9 āĻŦāĻž āϤāĻžāϰ āĻāĻĒāϰ⧠āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ (āϝāĻžāϰ āĻŽāϧā§āϝ⧠3.10, āĻāϤā§āϝāĻžāĻĻāĻŋ āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ)āĨ¤ |
|||
|
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Python-āĻāϰ **āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ**, āϤāĻžāĻšāϞ⧠āϏāϰā§āĻŦāĻļā§āώ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āĻāύā§āϝ āĻāĻĻāĻžāĻšāϰāĻŖāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϏā§āĻā§āϞāĻŋ āĻāĻĒāύāĻžāĻā§ **āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻāĻŦāĻ āϏāĻšāĻāϤāĻŽ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ** āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦā§, āϝā§āĻŽāύ, "**Python 3.10+**"āĨ¤ |
|||
|
|||
#### āϞāĻŋāϏā§āĻ |
|||
|
|||
āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻā§ `str`-āĻāϰ āĻāĻāĻāĻŋ `list` āĻšāĻŋāϏā§āĻŦā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāĻž āϝāĻžāĻāĨ¤ |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻāĻŋ āĻā§āώāĻŖāĻž āĻāϰā§āύ, āĻāĻāĻ āĻā§āϞāύ (`:`) āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ |
|||
|
|||
āĻāĻžāĻāĻĒ āĻšāĻŋāϏā§āĻŦā§, `list` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ |
|||
|
|||
āϝā§āĻšā§āϤ⧠āϞāĻŋāϏā§āĻ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āϝāĻž āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āϧāĻžāϰāĻŖ āĻāϰā§, āĻāĻĒāύāĻŋ āϤāĻžāĻĻā§āϰ āϏā§āĻā§āϝāĻŧāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāĻŋāϤāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ: |
|||
|
|||
```Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial006_py39.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
`typing` āĻĨā§āĻā§ `List` (āĻŦāĻĄāĻŧ āĻšāĻžāϤā§āϰ `L` āĻĻāĻŋāϝāĻŧā§) āĻāĻŽāĻĒā§āϰā§āĻ āĻāϰā§āύ: |
|||
|
|||
``` Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial006.py!} |
|||
``` |
|||
|
|||
āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻāĻŋ āĻā§āώāĻŖāĻž āĻāϰā§āύ, āĻāĻāĻ āĻā§āϞāύ (`:`) āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤ |
|||
|
|||
āĻāĻžāĻāĻĒ āĻšāĻŋāϏā§āĻŦā§, `typing` āĻĨā§āĻā§ āĻāĻĒāύāĻžāϰ āĻāĻŽā§āĻĒā§āϰā§āĻ āĻāϰāĻž `List` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύāĨ¤ |
|||
|
|||
āϝā§āĻšā§āϤ⧠āϞāĻŋāϏā§āĻ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āϝāĻž āĻ
āĻā§āϝāύā§āϤāϰā§āĻŖ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āϧāĻžāϰāĻŖ āĻāϰā§, āĻāĻĒāύāĻŋ āϤāĻžāĻĻā§āϰ āϏā§āĻā§āϝāĻŧāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻā§āϰ āĻāĻŋāϤāϰ⧠āĻāϰā§āύ: |
|||
|
|||
```Python hl_lines="4" |
|||
{!> ../../../docs_src/python_types/tutorial006.py!} |
|||
``` |
|||
|
|||
!!! Info |
|||
āϏā§āĻā§āϝāĻŧāĻžāϰ āĻŦā§āϰāĻžāĻā§āĻ āĻāϰ āĻāĻŋāϤāϰ⧠āĻŦā§āϝāĻŦāĻšā§āϤ āĻāĻāϏāĻŦ āĻ
āĻāύā§āϤāϰā§āύ āĻāĻžāĻāĻĒāĻā§āϞā§āĻā§ "āĻāύā§āĻāĻžāϰāύāĻžāϞ āĻāĻžāĻāĻĒ" āĻŦāϞā§āĨ¤ |
|||
|
|||
āĻāĻ āĻāĻĻāĻžāĻšāϰāĻŖā§, āĻāĻāĻŋ āĻšāĻā§āĻā§ `List`(āĻ
āĻĨāĻŦāĻž āĻĒāĻžāĻāĻĨāύ ā§Š.⧝ āĻŦāĻž āϤāĻžāϰ āĻāĻĒāϰā§āϰ āϏāĻāϏā§āĻāϰāĻŖā§āϰ āĻā§āώā§āϤā§āϰ⧠`list`) āĻ āĻĒāĻžāϏ āĻāϰāĻž āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĨ¤ |
|||
|
|||
āĻāϰ āĻ
āϰā§āĻĨ āĻšāĻā§āĻā§: "āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `items` āĻāĻāĻāĻŋ `list`, āĻāĻŦāĻ āĻāĻ āϞāĻŋāϏā§āĻā§āϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻāĻā§āĻŽ āĻāĻāĻāĻŋ `str`āĨ¤" |
|||
|
|||
!!! Tip |
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Python 3.9 āĻŦāĻž āϤāĻžāϰ āĻāĻĒāϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āĻāĻĒāύāĻžāϰ `typing` āĻĨā§āĻā§ `List` āĻāĻŽāĻĻāĻžāύāĻŋ āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž, āĻāĻĒāύāĻŋ āϏāĻžāϧāĻžāϰāĻŖ `list` āĻāĻ āĻāĻžāĻāĻĒā§āϰ āĻĒāϰāĻŋāĻŦāϰā§āϤ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
āĻāϰ āĻŽāĻžāϧā§āϝāĻŽā§, āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāϰ āϞāĻŋāϏā§āĻ āĻĨā§āĻā§ āĻāĻāĻā§āĻŽ āĻĒā§āϰāϏā§āϏ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āϏāĻžāĻĒā§āϰā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§: |
|||
|
|||
<img src="/img/python-types/image05.png"> |
|||
|
|||
āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āĻāĻžāĻĄāĻŧāĻž, āĻāĻāĻŋ āĻāϰāĻž āĻĒā§āϰāĻžāϝāĻŧ āĻ
āϏāĻŽā§āĻāĻŦāĨ¤ |
|||
|
|||
āϞāĻā§āώā§āϝ āĻāϰā§āύ āϝ⧠āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `item` āĻšāϞ `items` āϞāĻŋāϏā§āĻā§āϰ āĻāĻāĻāĻŋ āĻāϞāĻŋāĻŽā§āύā§āĻāĨ¤ |
|||
|
|||
āϤāĻŦā§āĻ, āĻāĻĄāĻŋāĻāϰ āĻāĻžāύ⧠āϝ⧠āĻāĻāĻŋ āĻāĻāĻāĻŋ `str`, āĻāĻŦāĻ āϤāĻžāϰ āĻāύā§āϝ āϏāĻžāĻĒā§āϰā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ |
|||
|
|||
#### āĻāĻžāĻĒāϞ āĻāĻŦāĻ āϏā§āĻ |
|||
|
|||
āĻāĻĒāύāĻŋ `tuple` āĻāĻŦāĻ `set` āĻā§āώāĻŖāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āĻāĻāĻ āĻĒā§āϰāĻā§āϰāĻŋāϝāĻŧāĻž āĻ
āύā§āϏāϰāĻŖ āĻāϰāĻŦā§āύ: |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
```Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial007_py39.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial007.py!} |
|||
``` |
|||
|
|||
āĻāϰ āĻŽāĻžāύ⧠āĻšāϞ: |
|||
|
|||
* āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `items_t` āĻšāϞ āĻāĻāĻāĻŋ `tuple` āϝāĻž ā§ŠāĻāĻŋ āĻāĻāĻā§āĻŽ āϧāĻžāϰāĻŖ āĻāϰā§, āĻāĻāĻāĻŋ `int`, āĻ
āύā§āϝ āĻāĻāĻāĻŋ `int`, āĻāĻŦāĻ āĻāĻāĻāĻŋ `str`āĨ¤ |
|||
* āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `items_s` āĻšāϞ āĻāĻāĻāĻŋ `set`, āĻāĻŦāĻ āĻāϰ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻāĻā§āĻŽ āĻšāϞ `bytes` āĻāĻžāĻāĻĒā§āϰāĨ¤ |
|||
|
|||
#### āĻĄāĻŋāĻā§āĻ |
|||
|
|||
āĻāĻāĻāĻŋ `dict` āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰāϤā§, āĻāĻĒāύāĻŋ ⧍āĻāĻŋ āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻŽāĻž āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āĻĨāĻ āĻāϰ⧠āĻĻā§āĻŦā§āύāĨ¤ |
|||
|
|||
āĻĒā§āϰāĻĨāĻŽ āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻšāϞ `dict`-āĻāϰ āĻā§āĻā§āϞāĻŋāϰ āĻāύā§āϝāĨ¤ |
|||
|
|||
āĻĻā§āĻŦāĻŋāϤā§āϝāĻŧ āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ āĻšāϞ `dict`-āĻāϰ āĻŽāĻžāύāĻā§āϞāĻŋāϰ āĻāύā§āϝ: |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
```Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial008_py39.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial008.py!} |
|||
``` |
|||
|
|||
|
|||
āĻāϰ āĻŽāĻžāύ⧠āĻšāϞ: |
|||
|
|||
* āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞ `prices` āĻšāϞ āĻāĻāĻāĻŋ `dict`: |
|||
* āĻāĻ `dict`-āĻāϰ āĻā§āĻā§āϞāĻŋ āĻšāϞ `str` āĻāĻžāĻāĻĒā§āϰ (āϧāϰāĻž āϝāĻžāĻ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻāĻā§āĻŽā§āϰ āύāĻžāĻŽ)āĨ¤ |
|||
* āĻāĻ `dict`-āĻāϰ āĻŽāĻžāύāĻā§āϞāĻŋ āĻšāϞ `float` āĻāĻžāĻāĻĒā§āϰ (āϧāϰāĻž āϝāĻžāĻ, āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻāĻā§āĻŽā§āϰ āĻĻāĻžāĻŽ)āĨ¤ |
|||
|
|||
#### āĻāĻāύāĻŋāϝāĻŧāύ |
|||
|
|||
āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞāĻā§ āĻāĻŽāύāĻāĻžāĻŦā§ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝā§āύ āϤāĻž **āĻāĻāĻžāϧāĻŋāĻ āĻāĻžāĻāĻĒā§āϰ** āĻšāϝāĻŧ, āĻāĻĻāĻžāĻšāϰāĻŖāϏā§āĻŦāϰā§āĻĒ, āĻāĻāĻāĻŋ `int` āĻ
āĻĨāĻŦāĻž `str`āĨ¤ |
|||
|
|||
Python 3.6 āĻāĻŦāĻ āϤāĻžāϰ āĻāĻĒāϰā§āϰ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϤ⧠(Python 3.10 āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ) āĻāĻĒāύāĻŋ `typing` āĻĨā§āĻā§ `Union` āĻāĻžāĻāĻĒ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āĻāĻŦāĻ āϏā§āĻā§āϝāĻŧāĻžāϰ āĻŦā§āϰā§āϝāĻžāĻā§āĻā§āϰ āĻŽāϧā§āϝ⧠āĻā§āϰāĻšāĻŖāϝā§āĻā§āϝ āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
Python 3.10-āĻ āĻāĻāĻāĻŋ **āύāϤā§āύ āϏāĻŋāύāĻā§āϝāĻžāĻā§āϏ** āĻāĻā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻāĻžāĻāĻĒāĻā§āϞāĻŋāĻā§ āĻāĻāĻāĻŋ <abbr title="āĻāϞā§āϞāĻŽā§āĻŦ āĻŦāĻžāϰāĻžāϞāĻā§ 'āĻŦāĻŋāĻāĻāϝāĻŧāĻžāĻāĻ āĻŦāĻž āĻ
āĻĒāĻžāϰā§āĻāϰ' āĻŦāϞāĻž āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āϏā§āĻ āĻ
āϰā§āĻĨ āĻāĻāĻžāύ⧠āĻĒā§āϰāĻžāϏāĻā§āĻāĻŋāĻ āύāϝāĻŧ">āĻāĻžāϰā§āĻāĻŋāĻāĻžāϞ āĻŦāĻžāϰ (`|`)</abbr> āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āĻĨāĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
=== "Python 3.10+" |
|||
|
|||
```Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial008b_py310.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial008b.py!} |
|||
``` |
|||
|
|||
āĻāĻāϝāĻŧ āĻā§āώā§āϤā§āϰā§āĻ āĻāϰ āĻŽāĻžāύ⧠āĻšāϞ āϝ⧠`item` āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻāĻāĻŋ `int` āĻ
āĻĨāĻŦāĻž `str`āĨ¤ |
|||
|
|||
#### āϏāĻŽā§āĻāĻŦāϤ `None` |
|||
|
|||
āĻāĻĒāύāĻŋ āĻāĻŽāύāĻāĻžāĻŦā§ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ āϝ⧠āĻāĻāĻāĻŋ āĻŽāĻžāύ āĻšāϤ⧠āĻĒāĻžāϰ⧠āĻāĻ āĻāĻžāĻāĻĒā§āϰ, āϝā§āĻŽāύ `str`, āĻāĻŦāĻžāϰ āĻāĻāĻŋ `None`-āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ |
|||
|
|||
Python 3.6 āĻāĻŦāĻ āϤāĻžāϰ āĻāĻĒāϰā§āϰ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϤ⧠(Python 3.10 āĻ
āύāϤāϰā§āĻā§āĻā§āϤ) āĻāĻĒāύāĻŋ `typing` āĻŽāĻĄāĻŋāĻāϞ āĻĨā§āĻā§ `Optional` āĻāĻŽāĻĒā§āϰā§āĻ āĻāϰ⧠āĻāĻāĻŋ āĻā§āώāĻŖāĻž āĻāĻŦāĻ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!../../../docs_src/python_types/tutorial009.py!} |
|||
``` |
|||
|
|||
`Optional[str]` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻŽāĻžāύ⧠āĻšāϞ āĻļā§āϧ⧠`str` āύāϝāĻŧ, āĻāĻāĻŋ āĻšāϤ⧠āĻĒāĻžāϰ⧠`None`-āĻ, āϝāĻž āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāϰāĻā§ āϏā§āĻ āϤā§āϰā§āĻāĻŋāĻā§āϞāĻŋ āĻļāύāĻžāĻā§āϤ āĻāϰāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§ āϝā§āĻāĻžāύ⧠āĻāĻĒāύāĻŋ āϧāϰ⧠āύāĻŋāĻā§āĻā§āύ āϝ⧠āĻāĻāĻāĻŋ āĻŽāĻžāύ āϏāĻŦāϏāĻŽāϝāĻŧ `str` āĻšāĻŦā§, āĻ
āĻĨāĻ āĻāĻāĻŋ `None`-āĻ āĻšāϤ⧠āĻĒāĻžāϰā§āĻāĨ¤ |
|||
|
|||
`Optional[Something]` āĻŽā§āϞāϤ `Union[Something, None]`-āĻāϰ āĻāĻāĻāĻŋ āĻļāϰā§āĻāĻāĻžāĻ, āĻāĻŦāĻ āϤāĻžāϰāĻž āϏāĻŽāϤā§āϞā§āϝāĨ¤ |
|||
|
|||
āĻāϰ āĻŽāĻžāύ⧠āĻšāϞ, Python 3.10-āĻ, āĻāĻĒāύāĻŋ āĻāĻžāĻāĻĒāĻā§āϞāĻŋāϰ āĻāĻāύāĻŋāϝāĻŧāύ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠`Something | None` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ: |
|||
|
|||
=== "Python 3.10+" |
|||
|
|||
```Python hl_lines="1" |
|||
{!> ../../../docs_src/python_types/tutorial009_py310.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial009.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+ āĻŦāĻŋāĻāϞā§āĻĒ" |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial009b.py!} |
|||
``` |
|||
|
|||
#### `Union` āĻŦāĻž `Optional` āĻŦā§āϝāĻŦāĻšāĻžāϰ |
|||
|
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ Python 3.10-āĻāϰ āύā§āĻā§āϰ āϏāĻāϏā§āĻāϰāĻŖ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϤāĻŦā§ āĻāĻāĻžāύ⧠āĻāĻŽāĻžāϰ āĻā§āĻŦāĻ **āĻŦā§āϝāĻā§āϤāĻŋāĻāϤ** āĻĻā§āώā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻĒāϏ: |
|||
|
|||
* đ¨ `Optional[SomeType]` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāĻĄāĻŧāĻŋāϝāĻŧā§ āĻāϞā§āύāĨ¤ |
|||
* āĻāϰ āĻĒāϰāĻŋāĻŦāϰā§āĻ¤ā§ â¨ **`Union[SomeType, None]` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ** â¨āĨ¤ |
|||
|
|||
āĻāĻāϝāĻŧāĻ āϏāĻŽāϤā§āϞā§āϝ āĻāĻŦāĻ āĻŽā§āϞ⧠āĻāĻāĻ, āĻāĻŋāύā§āϤ⧠āĻāĻŽāĻŋ `Union`-āĻāϰ āĻĒāĻā§āώ⧠āϏā§āĻĒāĻžāϰāĻŋāĻļ āĻāϰāĻŦ āĻāĻžāϰāĻŖ "**āĻ
āĻĒāĻļāύāĻžāϞ**" āĻļāĻŦā§āĻĻāĻāĻŋ āĻŽāύ⧠āĻšāϤ⧠āĻĒāĻžāϰ⧠āϝ⧠āĻŽāĻžāύāĻāĻŋ āĻāĻā§āĻāĻŋāĻ,āĻ
āĻĨāĻ āĻāĻāĻŋ āĻāϏāϞ⧠āĻŽāĻžāύ⧠"āĻāĻāĻŋ āĻšāϤ⧠āĻĒāĻžāϰ⧠`None`", āĻāĻŽāύāĻāĻŋ āϝāĻĻāĻŋ āĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ āύāĻž āĻšāϝāĻŧā§āĻ āĻāĻŦāĻļā§āϝāĻŋāĻ āĻšāϝāĻŧāĨ¤ |
|||
|
|||
āĻāĻŽāĻŋ āĻŽāύ⧠āĻāϰāĻŋ `Union[SomeType, None]` āĻāϰ āĻ
āϰā§āĻĨ āĻāϰāĻ āϏā§āĻĒāώā§āĻāĻāĻžāĻŦā§ āĻĒā§āϰāĻāĻžāĻļ āĻāϰā§āĨ¤ |
|||
|
|||
āĻāĻāĻŋ āĻā§āĻŦāϞ āĻļāĻŦā§āĻĻ āĻāĻŦāĻ āύāĻžāĻŽā§āϰ āĻŦā§āϝāĻžāĻĒāĻžāϰāĨ¤ āĻāĻŋāύā§āϤ⧠āϏā§āĻ āĻļāĻŦā§āĻĻāĻā§āϞāĻŋ āĻāĻĒāύāĻŋ āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āϏāĻšāĻāϰā§āĻŽā§āϰāĻž āĻā§āĻĄ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻā§āĻāĻžāĻŦā§ āĻāĻŋāύā§āϤāĻž āĻāϰā§āύ āϤāĻž āĻĒā§āϰāĻāĻžāĻŦāĻŋāϤ āĻāϰāϤ⧠āĻĒāĻžāϰā§āĨ¤ |
|||
|
|||
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏā§āĻŦā§, āĻāĻ āĻĢāĻžāĻāĻļāύāĻāĻŋ āύāĻŋāύ: |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!../../../docs_src/python_types/tutorial009c.py!} |
|||
``` |
|||
|
|||
`name` āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ `Optional[str]` āĻšāĻŋāϏā§āĻŦā§ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻšāϝāĻŧā§āĻā§, āĻāĻŋāύā§āϤ⧠āĻāĻāĻŋ **āĻ
āĻĒāĻļāύāĻžāϞ āύāϝāĻŧ**, āĻāĻĒāύāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻāĻžāĻĄāĻŧāĻž āĻĢāĻžāĻāĻļāύāĻāĻŋ āĻāϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ āύāĻž: |
|||
|
|||
```Python |
|||
say_hi() # āĻāĻš āύāĻž, āĻāĻāĻŋ āĻāĻāĻāĻŋ āϤā§āϰā§āĻāĻŋ āύāĻŋāĻā§āώā§āĻĒ āĻāϰāĻŦā§! đą |
|||
``` |
|||
|
|||
`name` āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰāĻāĻŋ **āĻāĻāύāĻ āĻāĻŦāĻļā§āϝāĻŋāĻ** (āύāύ-āĻ
āĻĒāĻļāύāĻžāϞ) āĻāĻžāϰāĻŖ āĻāĻāĻŋāϰ āĻā§āύ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āύā§āĻāĨ¤ āϤāĻŦā§āĻ, `name` āĻāϰ āĻŽāĻžāύ āĻšāĻŋāϏā§āĻŦā§ `None` āĻā§āϰāĻšāĻŖāϝā§āĻā§āϝ: |
|||
|
|||
```Python |
|||
say_hi(name=None) # āĻāĻāĻŋ āĻāĻžāĻ āĻāϰā§, None āĻŦā§āϧ đ |
|||
``` |
|||
|
|||
āϏā§āĻāĻŦāϰ āĻšāϞ, āĻāĻāĻŦāĻžāϰ āĻāĻĒāύāĻŋ Python 3.10 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āĻļā§āϰ⧠āĻāϰāϞā§, āĻāĻĒāύāĻžāĻā§ āĻāĻā§āϞā§āϰ āĻŦā§āϝāĻžāĻĒāĻžāϰ⧠āĻāϰ āĻāĻŋāύā§āϤāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻž, āϝā§āĻšā§āϤ⧠āĻāĻĒāύāĻŋ | āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĻ āĻāĻāύāĻŋāϝāĻŧāύ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ: |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!../../../docs_src/python_types/tutorial009c_py310.py!} |
|||
``` |
|||
|
|||
āĻāĻŦāĻ āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻžāĻā§ āύāĻžāĻŽāĻā§āϞāĻŋ āϝā§āĻŽāύ `Optional` āĻāĻŦāĻ `Union` āύāĻŋāϝāĻŧā§ āĻāϰ āĻāĻŋāύā§āϤāĻž āĻāϰāϤ⧠āĻšāĻŦā§ āύāĻžāĨ¤ đ |
|||
|
|||
#### āĻā§āύā§āϰāĻŋāĻ āĻāĻžāĻāĻĒāϏ |
|||
|
|||
āϏā§āĻā§āϝāĻŧāĻžāϰ āĻŦā§āϰā§āϝāĻžāĻā§āĻā§ āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āύā§āĻāϝāĻŧāĻž āĻāĻ āĻāĻžāĻāĻĒāĻā§āϞāĻŋāĻā§ **āĻā§āύā§āϰāĻŋāĻ āĻāĻžāĻāĻĒ** āĻŦāĻž **āĻā§āύā§āϰāĻŋāĻāϏ** āĻŦāϞāĻž āĻšāϝāĻŧ, āϝā§āĻŽāύ: |
|||
|
|||
=== "Python 3.10+" |
|||
āĻāĻĒāύāĻŋ āϏā§āĻ āĻāĻāĻ āĻŦāĻŋāϞā§āĻāĻāύ āĻāĻžāĻāĻĒ āĻā§āύā§āϰāĻŋāĻā§āϏ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ(āĻāĻŋāϤāϰ⧠āĻāĻžāĻāĻĒ āϏāĻš āϏā§āĻāϝāĻŧāĻžāϰ⧠āĻŦā§āϰāĻžāĻā§āĻ āĻĻāĻŋāϝāĻŧā§): |
|||
|
|||
* `list` |
|||
* `tuple` |
|||
* `set` |
|||
* `dict` |
|||
|
|||
āĻāĻŦāĻ Python 3.8 āĻāϰ āĻŽāϤā§āĻ, `typing` āĻŽāĻĄāĻŋāĻāϞ āĻĨā§āĻā§: |
|||
|
|||
* `Union` |
|||
* `Optional` (Python 3.8 āĻāϰ āĻŽāϤā§āĻ) |
|||
* ...āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝāĨ¤ |
|||
|
|||
Python 3.10-āĻ, `Union` āĻāĻŦāĻ `Optional` āĻā§āύā§āϰāĻŋāĻāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻžāϰ āĻŦāĻŋāĻāϞā§āĻĒ āĻšāĻŋāϏā§āĻŦā§, āĻāĻĒāύāĻŋ āĻāĻžāĻāĻĒāĻā§āϞāĻŋāϰ āĻāĻāύāĻŋāϝāĻŧāύ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠<abbr title="āĻāϞā§āϞāĻŽā§āĻŦ āĻŦāĻžāϰāĻžāϞāĻā§ 'āĻŦāĻŋāĻāĻāϝāĻŧāĻžāĻāĻ āĻŦāĻž āĻ
āĻĒāĻžāϰā§āĻāϰ' āĻŦāϞāĻž āĻšāϝāĻŧ, āĻāĻŋāύā§āϤ⧠āϏā§āĻ āĻ
āϰā§āĻĨ āĻāĻāĻžāύ⧠āĻĒā§āϰāĻžāϏāĻā§āĻāĻŋāĻ āύāϝāĻŧ">āĻāĻžāϰā§āĻāĻŋāĻāĻžāϞ āĻŦāĻžāϰ (`|`)</abbr> āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻž āĻāĻĻā§āϰ āĻĨā§āĻā§ āĻ
āύā§āĻ āĻāĻžāϞ⧠āĻāĻŦāĻ āϏāĻšāĻāĨ¤ |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
āĻāĻĒāύāĻŋ āϏā§āĻ āĻāĻāĻ āĻŦāĻŋāϞā§āĻāĻāύ āĻāĻžāĻāĻĒ āĻā§āύā§āϰāĻŋāĻā§āϏ āĻšāĻŋāϏā§āĻŦā§ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§āύ(āĻāĻŋāϤāϰ⧠āĻāĻžāĻāĻĒ āϏāĻš āϏā§āĻāϝāĻŧāĻžāϰ⧠āĻŦā§āϰāĻžāĻā§āĻ āĻĻāĻŋāϝāĻŧā§): |
|||
|
|||
* `list` |
|||
* `tuple` |
|||
* `set` |
|||
* `dict` |
|||
|
|||
āĻāĻŦāĻ Python 3.8 āĻāϰ āĻŽāϤā§āĻ, `typing` āĻŽāĻĄāĻŋāĻāϞ āĻĨā§āĻā§: |
|||
|
|||
* `Union` |
|||
* `Optional` |
|||
* ...āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝāĨ¤ |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
* `List` |
|||
* `Tuple` |
|||
* `Set` |
|||
* `Dict` |
|||
* `Union` |
|||
* `Optional` |
|||
* ...āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝāĨ¤ |
|||
|
|||
### āĻā§āϞāĻžāϏ āĻšāĻŋāϏā§āĻŦā§ āĻāĻžāĻāĻĒāϏ |
|||
|
|||
āĻāĻĒāύāĻŋ āĻāĻāĻāĻŋ āĻā§āϰāĻŋāϝāĻŧā§āĻŦāϞā§āϰ āĻāĻžāĻāĻĒ āĻšāĻŋāϏā§āĻŦā§ āĻāĻāĻāĻŋ āĻā§āϞāĻžāϏ āĻā§āώāĻŖāĻž āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
āϧāϰā§āύ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ `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"> |
|||
|
|||
āϞāĻā§āώā§āϝ āĻāϰā§āύ āϝ⧠āĻāϰ āĻŽāĻžāύ⧠āĻšāϞ "`one_person` āĻšāϞ āĻā§āϞāĻžāϏ `Person`-āĻāϰ āĻāĻāĻāĻŋ **āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ**āĨ¤" |
|||
|
|||
āĻāϰ āĻŽāĻžāύ⧠āĻāĻāĻŋ āύāϝāĻŧ āϝ⧠"`one_person` āĻšāϞ **āĻā§āϞāĻžāϏ** āϝāĻžāĻā§ āĻŦāϞāĻž āĻšāϝāĻŧ `Person`āĨ¤" |
|||
|
|||
## Pydantic āĻŽāĻĄā§āϞ |
|||
|
|||
[Pydantic](https://docs.pydantic.dev/) āĻšāϞ āĻāĻāĻāĻŋ Python āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϝāĻž āĻĄāĻžāĻāĻž āĻā§āϝāĻžāϞāĻŋāĻĄā§āĻļāύ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻāϰā§āĨ¤ |
|||
|
|||
āĻāĻĒāύāĻŋ āĻĄāĻžāĻāĻžāϰ "āĻāĻāĻžāϰ" āĻāĻā§āϰāĻŋāĻŦāĻŋāĻāĻ āϏāĻš āĻā§āϞāĻžāϏ āĻšāĻŋāϏā§āĻŦā§ āĻā§āώāĻŖāĻž āĻāϰā§āύāĨ¤ |
|||
|
|||
āĻāĻŦāĻ āĻĒā§āϰāϤāĻŋāĻāĻŋ āĻāĻā§āϰāĻŋāĻŦāĻŋāĻāĻ āĻāϰ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āĻĨāĻžāĻā§āĨ¤ |
|||
|
|||
āϤāĻžāϰāĻĒāϰ āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āĻāĻŋāĻā§ āĻŽāĻžāύ āĻĻāĻŋāϝāĻŧā§ āϏā§āĻ āĻā§āϞāĻžāϏā§āϰ āĻāĻāĻāĻŋ āĻāύā§āϏāĻā§āϝāĻžāύā§āϏ āϤā§āϰāĻŋ āĻāϰā§āύ-- āĻāĻāĻŋ āĻŽāĻžāύāĻā§āϞāĻŋāĻā§ āĻā§āϝāĻžāϞāĻŋāĻĄā§āĻ āĻāϰāĻŦā§, āĻĒā§āϰāϝāĻŧā§āĻāύ āĻ
āύā§āϝāĻžāϝāĻŧā§ āϤāĻžāĻĻā§āϰāĻā§ āĻāĻĒāϝā§āĻā§āϤ āĻāĻžāĻāĻĒā§ āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰāĻŦā§ āĻāĻŦāĻ āĻāĻĒāύāĻžāĻā§ āϏāĻŽāϏā§āϤ āĻĄāĻžāĻāĻž āϏāĻš āĻāĻāĻāĻŋ āĻ
āĻŦāĻā§āĻā§āĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻŦā§āĨ¤ |
|||
|
|||
āĻāĻŦāĻ āĻāĻĒāύāĻŋ āϏā§āĻ āĻĢāϞāĻžāĻĢāϞ āĻ
āĻŦāĻā§āĻā§āĻā§āϰ āϏāĻžāĻĨā§ āĻāĻĄāĻŋāĻāϰ āϏāĻžāĻĒā§āϰā§āĻ āĻĒāĻžāĻŦā§āύāĨ¤ |
|||
|
|||
āĻ
āĻĢāĻŋāϏāĻŋāϝāĻŧāĻžāϞ Pydantic āĻĄāĻā§āϏ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ: |
|||
|
|||
=== "Python 3.10+" |
|||
|
|||
```Python |
|||
{!> ../../../docs_src/python_types/tutorial011_py310.py!} |
|||
``` |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
```Python |
|||
{!> ../../../docs_src/python_types/tutorial011_py39.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
```Python |
|||
{!> ../../../docs_src/python_types/tutorial011.py!} |
|||
``` |
|||
|
|||
!!! Info |
|||
[Pydantic āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻāĻžāύāϤā§, āĻāϰ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻĻā§āĻā§āύ](https://docs.pydantic.dev/)āĨ¤ |
|||
|
|||
**FastAPI** āĻŽā§āϞāϤ Pydantic-āĻāϰ āĻāĻĒāϰ āύāĻŋāϰā§āĻŽāĻŋāϤāĨ¤ |
|||
|
|||
āĻāĻĒāύāĻŋ āĻāĻ āϏāĻŽāϏā§āϤ āĻāĻŋāĻā§āϰ āĻ
āύā§āĻ āĻŦāĻžāϏā§āϤāĻŦāϏāĻŽā§āĻŽāϤ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĒāĻžāĻŦā§āύ [āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ - āĻāĻāĻāĻžāϰ āĻāĻžāĻāĻĄā§](https://fastapi.tiangolo.com/tutorial/)āĨ¤ |
|||
|
|||
!!! Tip |
|||
āϝāĻāύ āĻāĻĒāύāĻŋ `Optional` āĻŦāĻž `Union[Something, None]` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āĻāĻŦāĻ āĻā§āύ⧠āĻĄāĻŋāĻĢāϞā§āĻ āĻŽāĻžāύ āύāĻž āĻĨāĻžāĻā§, Pydantic-āĻāϰ āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āώ āĻāĻāϰāĻŖ āϰāϝāĻŧā§āĻā§, āĻāĻĒāύāĻŋ Pydantic āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ⧠[Required Optional fields](https://docs.pydantic.dev/latest/concepts/models/#required-optional-fields) āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻĒāĻĄāĻŧāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
## āĻŽā§āĻāĻžāĻĄāĻžāĻāĻž āĻ
ā§āϝāĻžāύā§āĻā§āĻļāύ āϏāĻš āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāϏ |
|||
|
|||
Python-āĻ āĻāĻŽāύ āĻāĻāĻāĻŋ āĻĢāĻŋāĻāĻžāϰ āĻāĻā§ āϝāĻž `Annotated` āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻāĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāĻā§āϞāĻŋāϤ⧠**āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻŽā§āĻāĻžāĻĄāĻžāĻāĻž** āϰāĻžāĻāϤ⧠āĻĻā§āϝāĻŧāĨ¤ |
|||
|
|||
=== "Python 3.9+" |
|||
|
|||
Python 3.9-āĻ, `Annotated` āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϤ⧠āĻ
āύā§āϤāϰā§āĻā§āĻā§āϤ, āϤāĻžāĻ āĻāĻĒāύāĻŋ āĻāĻāĻŋ `typing` āĻĨā§āĻā§ āĻāĻŽāĻĒā§āϰā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial013_py39.py!} |
|||
``` |
|||
|
|||
=== "Python 3.8+" |
|||
|
|||
Python 3.9-āĻāϰ āύā§āĻā§āϰ āϏāĻāϏā§āĻāϰāĻŖāĻā§āϞāĻŋāϤā§, āĻāĻĒāύāĻŋ `Annotated`-āĻā§ `typing_extensions` āĻĨā§āĻā§ āĻāĻŽāĻĒā§āϰā§āĻ āĻāϰā§āύāĨ¤ |
|||
|
|||
āĻāĻāĻŋ **FastAPI** āĻāϰ āϏāĻžāĻĨā§ āĻāϤāĻŋāĻŽāĻĻā§āϧ⧠āĻāύāϏā§āĻāϞ āĻšāϝāĻŧā§ āĻĨāĻžāĻāĻŦā§āĨ¤ |
|||
|
|||
```Python hl_lines="1 4" |
|||
{!> ../../../docs_src/python_types/tutorial013.py!} |
|||
``` |
|||
|
|||
Python āύāĻŋāĻā§ āĻāĻ `Annotated` āĻĻāĻŋāϝāĻŧā§ āĻāĻŋāĻā§āĻ āĻāϰ⧠āύāĻžāĨ¤ āĻāĻŦāĻ āĻāĻĄāĻŋāĻāϰ āĻāĻŦāĻ āĻ
āύā§āϝāĻžāύā§āϝ āĻā§āϞāĻā§āϞāĻŋāϰ āĻāύā§āϝ, āĻāĻžāĻāĻĒāĻāĻŋ āĻāĻāύāĻ `str`āĨ¤ |
|||
|
|||
āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āĻāĻ `Annotated` āĻāϰ āĻŽāϧā§āϝāĻāĻžāϰ āĻāĻžāϝāĻŧāĻāĻžāĻāĻŋāϰ āĻŽāϧā§āϝ⧠**FastAPI**-āĻ āĻā§āĻāĻžāĻŦā§ āĻāĻĒāύāĻžāϰ āĻ
ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āĻāĻāϰāĻŖ āĻāϰā§āĻ āϤāĻž āϏāĻŽā§āĻĒāϰā§āĻā§ āĻ
āϤāĻŋāϰāĻŋāĻā§āϤ āĻŽā§āĻāĻžāĻĄāĻžāĻāĻž āĻĒā§āϰāĻĻāĻžāύ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤ |
|||
|
|||
āĻŽāύ⧠āϰāĻžāĻāĻžāϰ āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ āϝ⧠**āĻĒā§āϰāĻĨāĻŽ *āĻāĻžāĻāĻĒ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ*** āĻāĻĒāύāĻŋ `Annotated`-āĻ āĻĒāĻžāϏ āĻāϰā§āύ āϏā§āĻāĻŋ āĻšāϞ **āĻāϏāϞ āĻāĻžāĻāĻĒ**āĨ¤ āĻŦāĻžāĻāĻŋ āĻļā§āϧā§āĻŽāĻžāϤā§āϰ āĻ
āύā§āϝāĻžāύā§āϝ āĻā§āϞāĻā§āϞāĻŋāϰ āĻāύā§āϝ āĻŽā§āĻāĻžāĻĄāĻžāĻāĻžāĨ¤ |
|||
|
|||
āĻāĻāύ āĻāĻĒāύāĻžāϰ āĻā§āĻŦāϞ āĻāĻžāύāĻž āĻĒā§āϰāϝāĻŧā§āĻāύ āϝ⧠`Annotated` āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ, āĻāĻŦāĻ āĻāĻāĻŋ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ PythonāĨ¤ đ |
|||
|
|||
āĻĒāϰāĻŦāϰā§āϤā§āϤ⧠āĻāĻĒāύāĻŋ āĻĻā§āĻāĻŦā§āύ āĻāĻāĻŋ āĻāϤāĻāĻž **āĻļāĻā§āϤāĻŋāĻļāĻžāϞā§** āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ |
|||
|
|||
!!! Tip |
|||
āĻāĻāĻŋ **āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ Python** āĻšāĻāϝāĻŧāĻžāϰ āĻŽāĻžāύ⧠āĻšāϞ āĻāĻĒāύāĻŋ āĻāĻĒāύāĻžāϰ āĻāĻĄāĻŋāĻāϰā§, āĻāĻĒāύāĻŋ āϝ⧠āĻā§āϞāĻā§āϞāĻŋ āĻā§āĻĄ āĻŦāĻŋāĻļā§āϞā§āώāĻŖ āĻāĻŦāĻ āϰāĻŋāĻĢā§āϝāĻžāĻā§āĻāϰ āĻāϰāĻžāϰ āĻāύā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ āϤāĻžāϤ⧠**āϏā§āϰāĻž āϏāĻŽā§āĻāĻžāĻŦā§āϝ āĻĄā§āĻā§āϞāĻĒāĻžāϰ āĻāĻā§āϏāĻĒā§āϰāĻŋāϝāĻŧā§āύā§āϏ** āĻĒāĻžāĻŦā§āύāĨ¤ ⨠|
|||
|
|||
āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻĒāύāĻžāϰ āĻā§āĻĄ āĻ
āύā§āϝāĻžāύā§āϝ āĻ
āύā§āĻ Python āĻā§āϞ āĻāĻŦāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋāϰ āϏāĻžāĻĨā§ āĻā§āĻŦ āϏāĻžāĻŽāĻā§āĻāϏā§āϝāĻĒā§āϰā§āĻŖ āĻšāĻŦā§āĨ¤ đ |
|||
|
|||
## **FastAPI**-āĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāϏ |
|||
|
|||
**FastAPI** āĻāĻ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰ⧠āĻŦā§āĻļ āĻāĻŋāĻā§ āĻāĻŋāύāĻŋāϏ āĻāϰā§āĨ¤ |
|||
|
|||
**FastAPI**-āĻ āĻāĻĒāύāĻŋ āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻāĻā§āϞāĻŋ āϏāĻš āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ āĻā§āώāĻŖāĻž āĻāϰā§āύ āĻāĻŦāĻ āĻāĻĒāύāĻŋ āĻĒāĻžāύ: |
|||
|
|||
* **āĻāĻĄāĻŋāĻāϰ āϏāĻžāĻĒā§āϰā§āĻ**āĨ¤ |
|||
* **āĻāĻžāĻāĻĒāĻā§āĻ**āĨ¤ |
|||
|
|||
...āĻāĻŦāĻ **FastAPI** āĻāĻāĻ āĻā§āώāĻŖāĻžāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§: |
|||
|
|||
* **āϰāĻŋāĻā§āĻāϰā§āĻŽā§āύā§āĻāϏ āϏāĻāĻā§āĻāĻžāϝāĻŧāĻŋāϤ āĻāϰā§**: āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĒāĻžāĻĨ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ, āĻā§āϝāĻŧā§āϰāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāĻāĻžāϰ, āĻšā§āĻĄāĻžāϰ, āĻŦāĻĄāĻŋ, āĻĄāĻŋāĻĒā§āύā§āĻĄā§āύā§āϏāĻŋāϏ, āĻāϤā§āϝāĻžāĻĻāĻŋ āĻĨā§āĻā§āĨ¤ |
|||
* **āĻĄā§āĻāĻž āϰā§āĻĒāĻžāύā§āϤāϰ āĻāϰā§**: āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĨā§āĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϝāĻŧ āĻāĻžāĻāĻĒā§ āĻĄā§āĻāĻžāĨ¤ |
|||
* **āĻĄā§āĻāĻž āϝāĻžāĻāĻžāĻ āĻāϰā§**: āĻĒā§āϰāϤāĻŋāĻāĻŋ āϰāĻŋāĻā§āϝāĻŧā§āϏā§āĻ āĻĨā§āĻā§ āĻāϏāĻž āĻĄā§āĻāĻž: |
|||
* āϝāĻāύ āĻĄā§āĻāĻž āĻ
āĻŦā§āϧ āĻšāϝāĻŧ āϤāĻāύ **āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āϤā§āϰā§āĻāĻŋ** āĻā§āϰāĻžāĻšāĻā§āϰ āĻāĻžāĻā§ āĻĢā§āϰāϤ āĻĒāĻžāĻ āĻžāύā§āĨ¤ |
|||
* **API āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āϤā§āϰāĻŋ āĻāϰā§**: OpenAPI āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§: |
|||
* āϝāĻž āϏā§āĻŦāϝāĻŧāĻāĻā§āϰāĻŋāϝāĻŧ āĻāύā§āĻāĻžāϰâā§āϝāĻžāĻā§āĻāĻŋāĻ āĻĄāĻā§āĻŽā§āύā§āĻā§āĻļāύ āĻāĻāĻāĻžāϰ āĻāύā§āĻāĻžāϰāĻĢā§āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻŦā§āϝāĻŦāĻšā§āϤ āĻšāϝāĻŧāĨ¤ |
|||
|
|||
āĻāĻ āϏāĻŦ āĻāĻŋāĻā§ āĻāĻĒāύāĻžāϰ āĻāĻžāĻā§ āĻ
āϏā§āĻĒāώā§āĻ āĻŽāύ⧠āĻšāϤ⧠āĻĒāĻžāϰā§āĨ¤ āĻāĻŋāύā§āϤāĻž āĻāϰāĻŦā§āύ āύāĻžāĨ¤ āĻāĻĒāύāĻŋ [āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞ - āĻāĻāĻāĻžāϰ āĻāĻžāĻāĻĄ](https://fastapi.tiangolo.com/tutorial/) āĻ āĻāĻ āϏāĻŦ āĻāĻŋāĻā§ āĻĒā§āϰā§āϝāĻžāĻāĻāĻŋāϏ⧠āĻĻā§āĻāϤ⧠āĻĒāĻžāĻŦā§āύāĨ¤ |
|||
|
|||
āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āĻŖ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ, āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āϏā§āĻā§āϝāĻžāύā§āĻĄāĻžāϰā§āĻĄ Python āĻāĻžāĻāĻĒāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ, āϤāĻŦā§ āĻāϰāĻ āĻŦā§āĻļāĻŋ āĻā§āϞāĻžāϏ, āĻĄā§āĻā§āϰā§āĻāϰ āĻāϤā§āϝāĻžāĻĻāĻŋ āϝā§āĻ āύāĻž āĻāϰā§āĻ āĻāĻāĻ āϏā§āĻĨāĻžāύ⧠**FastAPI** āĻāĻĒāύāĻžāϰ āĻ
āύā§āĻ āĻāĻžāĻ āĻāϰ⧠āĻĻāĻŋāĻŦā§āĨ¤ |
|||
|
|||
!!! Info |
|||
āϝāĻĻāĻŋ āĻāĻĒāύāĻŋ āĻāĻŋāĻāĻā§āϰāĻŋāϝāĻŧāĻžāϞā§āϰ āϏāĻŽāϏā§āϤ āĻŦāĻŋāώāϝāĻŧ āĻĒāĻĄāĻŧā§ āĻĢā§āϞ⧠āĻĨāĻžāĻā§āύ āĻāĻŦāĻ āĻāĻžāĻāĻĒ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻāĻžāύāϤ⧠āĻāĻžāύ, āϤāĻŦā§ āĻāĻāĻāĻŋ āĻāĻžāϞ⧠āϰāĻŋāϏā§āϰā§āϏ āĻšāϞ [mypy āĻāϰ "cheat sheet"](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html)āĨ¤ āĻāĻ "cheat sheet" āĻ āĻāĻĒāύāĻŋ Python āĻāĻžāĻāĻĒ āĻšāĻŋāύā§āĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦā§āϏāĻŋāĻ āĻĨā§āĻā§ āĻāύā§āύāϤ āϞā§āĻā§āϞā§āϰ āϧāĻžāϰāĻŖāĻž āĻĒā§āϤ⧠āĻĒāĻžāϰā§āύ, āϝāĻž āĻāĻĒāύāĻžāϰ āĻā§āĻĄā§ āĻāĻžāĻāĻĒ āϏā§āĻĢāĻāĻŋ āĻāĻŦāĻ āϏā§āĻĒāώā§āĻāϤāĻž āĻŦāĻžāĻĄāĻŧāĻžāϤ⧠āϏāĻžāĻšāĻžāϝā§āϝ āĻāϰāĻŦā§āĨ¤ |
LoadingâĻ
Reference in new issue