From: Mohammad <116789737+Mohammad222PR@users.noreply.github.com>
Date: Mon, 21 Jul 2025 12:20:57 +0000 (+0330)
Subject: 🌐 Add Persian translation for `docs/fa/docs/python-types.md` (#13524)
X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c8f330314ee6632edf13d103d7f3f9ae2f8d42ce;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Add Persian translation for `docs/fa/docs/python-types.md` (#13524)
* 🌐 Add Persian translation for docs/fa/docs/python-types.md
* 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks
---------
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
---
diff --git a/docs/fa/docs/python-types.md b/docs/fa/docs/python-types.md
new file mode 100644
index 0000000000..c428acbf74
--- /dev/null
+++ b/docs/fa/docs/python-types.md
@@ -0,0 +1,578 @@
+# Ù
ÙØ¯Ù
ÙâØ§Û Ø¨Ø± اÙÙØ§Ø¹ ÙÙØ¹ در Ù¾Ø§ÛØªÙÙ
+
+Ù¾Ø§ÛØªÙ٠از "ÙÙØ¹âÙÙ
ا"ÙØ§Û Ø§Ø®ØªÛØ§Ø±Û (Ú©Ù Ø¨ÙØ´ÙÙ "type hints" ÛØ§ "type annotations" ÙÙ
Ù
ÛâÚ¯Ù) Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâÚ©ÙÙ.
+
+اÛÙ **"ÙÙØ¹âÙÙ
Ø§ÙØ§"** ÛØ§ annotationÙØ§ Û٠سÛÙØªÚ©Ø³ خاص ÙØ³ØªÙ Ú©Ù Ø¨ÙØª اجاز٠Ù
ÛâØ¯Ù ÙÙØ¹ ÛÙ Ù
ØªØºÛØ± ر٠Ù
شخص Ú©ÙÛ.
+
+با Ù
شخص کرد٠ÙÙØ¹ Ù
ØªØºÛØ±ÙØ§Ø ÙÛØ±Ø§ÛØ´Ú¯Ø±ÙØ§ Ù Ø§Ø¨Ø²Ø§Ø±ÙØ§ Ù
ÛâØªÙÙÙ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø¨ÙØªØ±Û Ø¨ÙØª بدÙ.
+
+اÛÙ ÙÙØ· ÛÙ **Ø¢Ù
ÙØ²Ø´ Ø³Ø±ÛØ¹ / ÛØ§Ø¯Ø¢ÙرÛ** در Ù
ÙØ±Ø¯ ÙÙØ¹âÙÙ
Ø§ÙØ§Û Ù¾Ø§ÛØªÙÙÙ. ÙÙØ· ØØ¯Ø§ÙÙ ÚÛØ²Ø§ÛÛ Ú©Ù Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù ازشÙ٠با **FastAPI** ÙØ§Ø²Ù
Ù Ø±Ù Ù¾ÙØ´Ø´ Ù
ÛâØ¯Ù... ک٠در ÙØ§Ùع Ø®ÛÙÛ Ú©Ù
Ù.
+
+**FastAPI** کاÙ
ÙØ§Ù بر پاÛ٠اÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§Ø³Øª ٠اÛÙ Ø¨ÙØ´ Ú©ÙÛ Ù
Ø²ÛØª Ù ÙØ§Ûد٠Ù
ÛâØ¯Ù.
+
+ÙÙÛ ØØªÛ اگ٠ÙÛÚâÙÙØª از **FastAPI** Ø§Ø³ØªÙØ§Ø¯Ù ÙÚ©ÙÛØ بازÙ
ÛØ§Ø¯Ú¯ÛØ±Û ÛÙ Ú©Ù
در Ù
ÙØ±Ø¯Ø´Ù٠ب٠ÙÙØ¹ØªÙ.
+
+/// note
+
+Ø§Ú¯Ù ØØ±ÙÙâØ§Û Ù¾Ø§ÛØªÙÙÛ Ù ÙÙ
ÙâÚÛØ² ر٠در Ù
ÙØ±Ø¯ ÙÙØ¹âÙÙ
Ø§ÙØ§ Ù
ÛâØ¯ÙÙÛØ بر٠سراغ ÙØµÙ بعدÛ.
+
+///
+
+## اÙÚ¯ÛØ²Ù
+
+Ø¨ÛØ§Ûد با ÛÙ Ù
Ø«Ø§Ù Ø³Ø§Ø¯Ù Ø´Ø±ÙØ¹ Ú©ÙÛÙ
:
+
+{* ../../docs_src/python_types/tutorial001.py *}
+
+ÙÙØªÛ اÛÙ Ø¨Ø±ÙØ§Ù
٠ر٠اجرا Ú©ÙÛØ Ø®Ø±ÙØ¬Û اÛÙÙ:
+
+```
+John Doe
+```
+
+اÛ٠تابع اÛ٠کارا ر٠Ù
ÛâÚ©ÙÙ:
+
+* ÛÙ `first_name` Ù `last_name` Ù
ÛâÚ¯ÛØ±Ù.
+* ØØ±Ù اÙÙ ÙØ± کدÙÙ
ر٠با `title()` بزرگ Ù
ÛâÚ©ÙÙ.
+* ØªØ±Ú©ÛØ¨Ø´ÙÙ Ù
ÛâÚ©Ù٠با ÛÙ ÙØ§ØµÙÙ ÙØ³Ø·Ø´ÙÙ.
+
+{* ../../docs_src/python_types/tutorial001.py hl[2] *}
+
+### ÙÛØ±Ø§Ûشش Ú©Ù
+
+اÛÙ ÛÙ Ø¨Ø±ÙØ§Ù
Ù Ø®ÛÙÛ Ø³Ø§Ø¯ÙâØ³Øª.
+
+ÙÙÛ ØØ§Ùا ØªØµÙØ± Ú©Ù Ø¯Ø§Ø±Û Ø§Ø² ØµÙØ± Ù
ÛâÙÙÛØ³ÛØ´.
+
+Û٠جاÛÛ Ø´Ø±ÙØ¹ Ú©Ø±Ø¯Û Ø¨Ù ØªØ¹Ø±ÛÙ ØªØ§Ø¨Ø¹Ø Ù¾Ø§Ø±Ø§Ù
ØªØ±ÙØ§Øª Ø¢Ù
ادÙâØ³Øª...
+
+ÙÙÛ Ø¨Ø¹Ø¯ Ø¨Ø§ÛØ¯ "اÙÙ Ù
ØªØ¯Û Ú©Ù ØØ±Ù اÙ٠ر٠بزرگ Ù
ÛâÚ©ÙÙ" ر٠صدا Ú©ÙÛ.
+
+Ø¢ÛØ§ اسÙ
Ø´ `upper` Ø¨ÙØ¯Ø ÛØ§ `uppercase`Ø Ø´Ø§ÛØ¯ `first_uppercase`Ø ÛØ§ `capitalize`Ø
+
+Ø¨Ø¹Ø¯Ø Ø¨Ø§ Ø¯ÙØ³Øª ÙØ¯ÛÙ
Û Ø¨Ø±ÙØ§Ù
ÙâÙÙÛØ³Ø§Ø تکÙ
ÛÙ Ø®ÙØ¯Ú©Ø§Ø± ÙÛØ±Ø§ÛØ´Ú¯Ø±Ø Ø§Ù
ØªØØ§Ù Ù
ÛâÚ©ÙÛ.
+
+پاراÙ
تر اÙÙ ØªØ§Ø¨Ø¹Ø `first_name` ر٠تاÛÙ¾ Ù
ÛâÚ©ÙÛØ بعد ÛÙ ÙÙØ·Ù (`.`) Ù
ÛâØ°Ø§Ø±Û Ù `Ctrl+Space` ر٠Ù
ÛâØ²ÙÛ ØªØ§ تکÙ
ÛÙ Ø®ÙØ¯Ú©Ø§Ø± Ø¨ÛØ§Ø¯.
+
+ÙÙÛ Ù
ØªØ£Ø³ÙØ§ÙÙØ ÚÛØ² Ù
ÙÛØ¯Û ÙÙ
ÛâÚ¯ÛØ±Û:
+
+
+
+### ÙÙØ¹ اضاÙÙ Ú©Ù
+
+Ø¨ÛØ§ ÙÙØ· Û٠خط از ÙØ³Ø®Ù ÙØ¨ÙÛ Ø±Ù ØªØºÛÛØ± بدÛÙ
.
+
+دÙÛÙØ§Ù اÛÙ Ø¨Ø®Ø´Ø Ù¾Ø§Ø±Ø§Ù
ØªØ±ÙØ§Û تابع Ø±ÙØ از:
+
+```Python
+ first_name, last_name
+```
+
+بÙ:
+
+```Python
+ first_name: str, last_name: str
+```
+
+Ø¹ÙØ¶ Ù
ÛâÚ©ÙÛÙ
.
+
+ÙÙ
ÛÙÙ.
+
+اÛÙØ§ ÙÙ
ÙÙ "ÙÙØ¹âÙÙ
Ø§ÙØ§" ÙØ³ØªÙ:
+
+{* ../../docs_src/python_types/tutorial002.py hl[1] *}
+
+اÛ٠با تعرÛÙ Ù
ÙØ¯Ø§Ø± Ù¾ÛØ´âÙØ±Ø¶ ÙØ±Ù Ø¯Ø§Ø±ÙØ Ù
Ø«Ù:
+
+```Python
+ first_name="john", last_name="doe"
+```
+
+ÛÙ ÚÛØ² Ù
ØªÙØ§ÙتÙ.
+
+Ù
ا از دÙÙÙØ·Ù (`:`) Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛÙ
Ø ÙÙ Ø¹ÙØ§Ù
ت Ù
ساÙÛ (`=`)â.
+
+٠اضاÙ٠کرد٠ÙÙØ¹âÙÙ
Ø§ÙØ§ Ù
عÙ
ÙÙØ§Ù ÚÛØ²Û Ú©Ù Ø§ØªÙØ§Ù Ù
ÛâØ§ÙØªÙ ر٠از ÚÛØ²Û ک٠بدÙ٠اÙÙØ§ Ù
ÛâØ§ÙØªØ§Ø¯ تغÛÛØ± ÙÙ
ÛâØ¯Ù.
+
+ÙÙÛ ØØ§ÙØ§Ø Ø¯ÙØ¨Ø§Ø±Ù ØªØµÙØ± Ú©Ù ÙØ³Ø· ساخت٠اÙ٠تابع ÙØ³ØªÛØ ÙÙÛ Ø§Û٠بار با ÙÙØ¹âÙÙ
Ø§ÙØ§.
+
+تÙÛ ÙÙ
ÙÙ ÙÙØ·ÙØ Ø³Ø¹Û Ù
ÛâÚ©ÙÛ ØªÚ©Ù
ÛÙ Ø®ÙØ¯Ú©Ø§Ø± ر٠با `Ctrl+Space` ÙØ¹Ø§Ù Ú©ÙÛ Ù Ø§ÛÙÙ Ù
ÛâØ¨ÛÙÛ:
+
+
+
+با اÛÙØ Ù
ÛâØªÙÙÛ Ø§Ø³Ú©Ø±ÙÙ Ú©ÙÛØ گزÛÙÙâÙØ§ ر٠ببÛÙÛØ تا ÙÙØªÛ ک٠اÙÙ ÚÛØ²Û Ú©Ù "Ø¨Ù ÙØ¸Ø±Øª Ø¢Ø´ÙØ§ Ù
ÛØ§Ø¯" Ø±Ù Ù¾ÛØ¯Ø§ Ú©ÙÛ:
+
+
+
+## اÙÚ¯ÛØ²Ù Ø¨ÛØ´ØªØ±
+
+اÛ٠تابع ر٠ÚÚ© Ú©ÙØ Ø§ÙØ§Ù ÙÙØ¹âÙÙ
ا دارÙ:
+
+{* ../../docs_src/python_types/tutorial003.py hl[1] *}
+
+ÚÙÙ ÙÛØ±Ø§Ûشگر ÙÙØ¹ Ù
ØªØºÛØ±Ùا ر٠Ù
ÛâØ¯ÙÙÙØ ÙÙØ· تکÙ
ÛÙ Ø®ÙØ¯Ú©Ø§Ø± ÙÙ
ÛâÚ¯ÛØ±ÛØ Ø¨ÙÚ©Ù ÚÚ© Ø®Ø·Ø§ÙØ§ ÙÙ
دارÛ:
+
+
+
+ØØ§Ùا Ù
ÛâØ¯ÙÙÛ Ú©Ù Ø¨Ø§ÛØ¯ درستش Ú©ÙÛØ `age` ر٠با `str(age)` ب٠Û٠رشت٠تبدÛÙ Ú©ÙÛ:
+
+{* ../../docs_src/python_types/tutorial004.py hl[2] *}
+
+## تعرÛÙ ÙÙØ¹âÙØ§
+
+تاز٠اصÙÛâØªØ±Û٠جا Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§ Ø±Ù Ø¯ÛØ¯Û. بÙâØ¹ÙÙØ§Ù پاراÙ
ØªØ±ÙØ§Û تابع.
+
+اÛÙ ÙÙ
اصÙÛâØªØ±Û٠جاÛÛ٠ک٠با **FastAPI** ازشÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ.
+
+### ÙÙØ¹âÙØ§Û سادÙ
+
+Ù
ÛâØªÙÙÛ ÙÙ
Ù ÙÙØ¹âÙØ§Û Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù¾Ø§ÛØªÙ٠ر٠تعرÛÙ Ú©ÙÛØ ÙÙ ÙÙØ· `str`.
+
+Ù
Ø«ÙØ§Ù Ù
ÛâØªÙÙÛ Ø§Ø² اÛÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ:
+
+* `int`
+* `float`
+* `bool`
+* `bytes`
+
+{* ../../docs_src/python_types/tutorial005.py hl[1] *}
+
+### ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û Ø¨Ø§ پاراÙ
ØªØ±ÙØ§Û ÙÙØ¹
+
+ÛÙ Ø³Ø±Û Ø³Ø§Ø®ØªØ§Ø± Ø¯Ø§Ø¯Ù ÙØ³ØªÙ Ú©Ù Ù
ÛâØªÙÙÙ Ù
ÙØ¯Ø§Ø±ÙØ§Û Ø¯Ûگ٠ر٠ÙÚ¯Ù Ø¯Ø§Ø±ÙØ Ù
ث٠`dict`Ø `list`Ø `set` Ù `tuple`. Ù Ù
ÙØ¯Ø§Ø±ÙØ§Û Ø¯Ø§Ø®ÙÛØ´ÙÙ ÙÙ
Ù
ÛâØªÙÙÙ ÙÙØ¹ Ø®ÙØ¯Ø´Ù٠ر٠داشت٠باشÙ.
+
+ب٠اÛÙ ÙÙØ¹âÙØ§ Ú©Ù ÙÙØ¹âÙØ§Û داخÙÛ Ø¯Ø§Ø±Ù Ù
ÛâÚ¯Ù "**عÙ
ÙÙ
Û**" ÛØ§ "generic". Ù Ù
ÛâØ´Ù Ø§ÙÙØ§ ر٠تعرÛÙ Ú©Ø±Ø¯Ø ØØªÛ با ÙÙØ¹âÙØ§Û داخÙÛØ´ÙÙ.
+
+Ø¨Ø±Ø§Û ØªØ¹Ø±Û٠اÛÙ ÙÙØ¹âÙØ§ Ù ÙÙØ¹âÙØ§Û داخÙÛØ´ÙÙØ Ù
ÛâØªÙÙÛ Ø§Ø² Ù
اÚÙÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù¾Ø§ÛØªÙÙ `typing` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ. اÛÙ Ù
اÚÙÙ Ù
Ø®ØµÙØµ Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø§Ø² ÙÙØ¹âÙÙ
Ø§ÙØ§Ø³Øª.
+
+#### ÙØ³Ø®ÙâÙØ§Û Ø¬Ø¯ÛØ¯ØªØ± Ù¾Ø§ÛØªÙÙ
+
+سÛÙØªÚ©Ø³ با Ø§Ø³ØªÙØ§Ø¯Ù از `typing` با ÙÙ
Ù ÙØ³Ø®ÙâÙØ§Ø از Ù¾Ø§ÛØªÙÙ 3.6 تا Ø¬Ø¯ÛØ¯ØªØ±ÛÙâÙØ§Ø از جÙ
ÙÙ Ù¾Ø§ÛØªÙÙ 3.9Ø 3.10 Ù ØºÛØ±Ù **سازگارÙ**.
+
+با Ù¾ÛØ´Ø±Ùت Ù¾Ø§ÛØªÙÙØ **ÙØ³Ø®ÙâÙØ§Û Ø¬Ø¯ÛØ¯ØªØ±** Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ø¨ÙØªØ±Û Ø¨Ø±Ø§Û Ø§ÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§ دار٠٠تÙÛ Ø®ÛÙÛ Ù
ÙØ§Ø±Ø¯ ØØªÛ ÙØ§Ø²Ù
ÙÛØ³Øª Ù
اÚÙÙ `typing` Ø±Ù ÙØ§Ø±Ø¯ Ú©ÙÛ Ù Ø§Ø²Ø´ Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ.
+
+اگ٠بتÙÙÛ Ø¨Ø±Ø§Û Ù¾Ø±ÙÚÙâØ§Øª از ÛÙ ÙØ³Ø®Ù Ø¬Ø¯ÛØ¯ØªØ± Ù¾Ø§ÛØªÙÙ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ Ù
ÛâØªÙÙÛ Ø§Ø² اÛÙ Ø³Ø§Ø¯Ú¯Û Ø§Ø¶Ø§ÙÙ Ø¨ÙØ±Ù ببرÛ.
+
+تÙÛ ÙÙ
Ù Ù
Ø³ØªÙØ¯Ø§ØªØ Ù
ثاÙâÙØ§ÛÛ ÙØ³ØªÙ ک٠با ÙØ± ÙØ³Ø®Ù Ù¾Ø§ÛØªÙ٠سازگار٠(ÙÙØªÛ ØªÙØ§ÙØªÛ ÙØ³Øª).
+
+Ù
Ø«ÙØ§Ù "**Python 3.6+**" ÛØ¹ÙÛ Ø¨Ø§ Ù¾Ø§ÛØªÙÙ 3.6 ÛØ§ Ø¨Ø§ÙØ§ØªØ± (Ù
ث٠3.7Ø 3.8Ø 3.9Ø 3.10 Ù ØºÛØ±Ù) سازگارÙ. Ù "**Python 3.9+**" ÛØ¹ÙÛ Ø¨Ø§ Ù¾Ø§ÛØªÙÙ 3.9 ÛØ§ Ø¨Ø§ÙØ§ØªØ± (Ù
ث٠3.10 Ù ØºÛØ±Ù) سازگارÙ.
+
+اگ٠بتÙÙÛ Ø§Ø² **Ø¬Ø¯ÛØ¯ØªØ±ÛÙ ÙØ³Ø®ÙâÙØ§Û Ù¾Ø§ÛØªÙÙ** Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ از Ù
ثاÙâÙØ§Û ÙØ³Ø®Ù آخر Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙØ ÚÙ٠اÙÙØ§ **Ø¨ÙØªØ±Û٠٠سادÙâØªØ±Û٠سÛÙØªÚ©Ø³** Ø±Ù Ø¯Ø§Ø±ÙØ Ù
Ø«ÙØ§Ù "**Python 3.10+**".
+
+#### ÙÛØ³Øª
+
+Ù
Ø«ÙØ§ÙØ Ø¨ÛØ§ÛÙ
ÛÙ Ù
ØªØºÛØ± تعرÛÙ Ú©ÙÛÙ
Ú©Ù ÛÙ `list` از `str` باشÙ.
+
+//// tab | Python 3.9+
+
+Ù
ØªØºÛØ± ر٠با ÙÙ
Ù٠سÛÙØªÚ©Ø³ دÙÙÙØ·Ù (`:`) تعرÛÙ Ú©Ù.
+
+بÙâØ¹ÙÙØ§Ù ÙÙØ¹Ø `list` ر٠بذار.
+
+ÚÙÙ ÙÛØ³Øª ÛÙ ÙÙØ¹Ù Ú©Ù ÙÙØ¹âÙØ§Û داخÙÛ Ø¯Ø§Ø±ÙØ اÙÙØ§ ر٠تÙÛ Ú©Ø±ÙØ´ÙâÙØ§ Ù
ÛâØ°Ø§Ø±Û:
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial006_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+از `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!}
+```
+
+////
+
+/// info
+
+اÙÙ ÙÙØ¹âÙØ§Û داخÙÛ ØªÙÛ Ú©Ø±ÙØ´ÙâÙØ§ Ø¨ÙØ´ÙÙ "پاراÙ
ØªØ±ÙØ§Û ÙÙØ¹" Ù
ÛâÚ¯Ù.
+
+تÙÛ Ø§ÛÙ Ù
ÙØ±Ø¯Ø `str` پاراÙ
تر ÙÙØ¹Û٠ک٠ب٠`List` (ÛØ§ `list` تÙÛ Ù¾Ø§ÛØªÙÙ 3.9 Ù Ø¨Ø§ÙØ§ØªØ±) پاس داد٠شدÙ.
+
+///
+
+ÛØ¹ÙÛ: "Ù
ØªØºÛØ± `items` ÛÙ `list` ÙØ³ØªØ Ù ÙØ± کدÙÙ
از Ø¢ÛØªÙ
âÙØ§Û اÛÙ ÙÛØ³Øª ÛÙ `str` ÙØ³ØªÙ".
+
+/// tip
+
+اگ٠از Ù¾Ø§ÛØªÙÙ 3.9 ÛØ§ Ø¨Ø§ÙØ§ØªØ± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛØ ÙØ§Ø²Ù
ÙÛØ³Øª `List` ر٠از `typing` ÙØ§Ø±Ø¯ Ú©ÙÛØ Ù
ÛâØªÙÙÛ ÙÙ
ÙÙ ÙÙØ¹ Ù
عÙ
ÙÙÛ `list` ر٠ب٠جاش Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ.
+
+///
+
+با اÛÙ Ú©Ø§Ø±Ø ÙÛØ±Ø§Ûشگرت ØØªÛ ÙÙØªÛ Ø¯Ø§Ø±Û Ø¢ÛØªÙ
âÙØ§Û ÙÛØ³Øª ر٠پردازش Ù
ÛâÚ©ÙÛ Ø¨ÙØª Ú©Ù
Ú© Ù
ÛâÚ©ÙÙ:
+
+
+
+بدÙÙ ÙÙØ¹âÙØ§Ø Ø±Ø³ÛØ¯Ù ب٠اÛÙ ØªÙØ±ÛØ¨Ø§Ù ØºÛØ±Ù
Ù
Ú©ÙÙ.
+
+ØªÙØ¬Ù Ú©Ù Ú©Ù Ù
ØªØºÛØ± `item` ÛÚ©Û Ø§Ø² Ø¹ÙØ§ØµØ± تÙÛ ÙÛØ³Øª `items` ÙØ³Øª.
+
+٠با اÛÙ ØØ§ÙØ ÙÛØ±Ø§Ûشگر Ù
ÛâØ¯ÙÙÙ Ú©Ù ÛÙ `str` ÙØ³Øª ٠براش Ù¾Ø´ØªÛØ¨Ø§ÙÛ Ù
ÛâØ¯Ù.
+
+#### تاپ٠٠ست
+
+Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ `tuple`ÙØ§ Ù `set`ÙØ§ ÙÙ
ÙÙ
Û٠کار ر٠Ù
ÛâÚ©ÙÛ:
+
+//// tab | Python 3.9+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial007_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial007.py!}
+```
+
+////
+
+ÛØ¹ÙÛ:
+
+* Ù
ØªØºÛØ± `items_t` ÛÙ `tuple` با 3 تا Ø¢ÛØªÙ
ÙØ ÛÙ `int`Ø ÛÙ `int` دÛÚ¯ÙØ Ù ÛÙ `str`.
+* Ù
ØªØºÛØ± `items_s` ÛÙ `set` ÙØ³ØªØ Ù ÙØ± کدÙÙ
از Ø¢ÛØªÙ
âÙØ§Ø´ از ÙÙØ¹ `bytes` ÙØ³ØªÙ.
+
+#### دÛÚ©Ø´ÙØ±Û
+
+Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ ÛÙ `dict`Ø 2 تا پاراÙ
تر ÙÙØ¹ Ù
ÛâØ¯ÛØ ک٠با کاÙ
ا از ÙÙ
جدا شدÙ.
+
+پاراÙ
تر ÙÙØ¹ اÙÙ Ø¨Ø±Ø§Û Ú©ÙÛØ¯ÙØ§Û `dict` ÙØ³Øª.
+
+پاراÙ
تر ÙÙØ¹ دÙÙ
Ø¨Ø±Ø§Û Ù
ÙØ¯Ø§Ø±ÙØ§Û `dict` ÙØ³Øª:
+
+//// tab | Python 3.9+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial008_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial008.py!}
+```
+
+////
+
+ÛØ¹ÙÛ:
+
+* Ù
ØªØºÛØ± `prices` ÛÙ `dict` ÙØ³Øª:
+ * Ú©ÙÛØ¯ÙØ§Û Ø§ÛÙ `dict` از ÙÙØ¹ `str` ÙØ³ØªÙ (Ù
Ø«ÙØ§Ù اسÙ
ÙØ± Ø¢ÛØªÙ
).
+ * Ù
ÙØ¯Ø§Ø±ÙØ§Û Ø§ÛÙ `dict` از ÙÙØ¹ `float` ÙØ³ØªÙ (Ù
Ø«ÙØ§Ù ÙÛÙ
ت ÙØ± Ø¢ÛØªÙ
).
+
+#### Ø§ØªØØ§Ø¯ÛÙ
+
+Ù
ÛâØªÙÙÛ ØªØ¹Ø±ÛÙ Ú©ÙÛ Ú©Ù ÛÙ Ù
ØªØºÛØ± Ù
ÛâØªÙÙÙ ÙØ± کدÙÙ
از **ÚÙØ¯ تا ÙÙØ¹** Ø¨Ø§Ø´ÙØ Ù
Ø«ÙØ§Ù ÛÙ `int` ÛØ§ ÛÙ `str`.
+
+تÙÛ Ù¾Ø§ÛØªÙÙ 3.6 Ù Ø¨Ø§ÙØ§ØªØ± (از جÙ
ÙÙ Ù¾Ø§ÛØªÙÙ 3.10) Ù
ÛâØªÙÙÛ Ø§Ø² ÙÙØ¹ `Union` تÙÛ `typing` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ Ù ÙÙØ¹âÙØ§Û Ù
Ù
ک٠ر٠تÙÛ Ú©Ø±ÙØ´ÙâÙØ§ بذارÛ.
+
+تÙÛ Ù¾Ø§ÛØªÙÙ 3.10 ÛÙ **سÛÙØªÚ©Ø³ Ø¬Ø¯ÛØ¯** ÙÙ
ÙØ³Øª Ú©Ù Ù
ÛâØªÙÙÛ ÙÙØ¹âÙØ§Û Ù
Ù
ک٠ر٠با Û٠خط عÙ
ÙØ¯Û (`|`) جدا Ú©ÙÛ.
+
+//// tab | Python 3.10+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial008b_py310.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial008b.py!}
+```
+
+////
+
+تÙÛ ÙØ± Ø¯Ù ØØ§Ùت ÛØ¹ÙÛ `item` Ù
ÛâØªÙÙÙ ÛÙ `int` ÛØ§ ÛÙ `str` باشÙ.
+
+#### Ø´Ø§ÛØ¯ `None`
+
+Ù
ÛâØªÙÙÛ ØªØ¹Ø±ÛÙ Ú©ÙÛ Ú©Ù ÛÙ Ù
ÙØ¯Ø§Ø± Ù
ÛâØªÙÙÙ ÛÙ ÙÙØ¹ Ø¨Ø§Ø´ÙØ Ù
Ø«ÙØ§Ù `str`Ø ÙÙÛ Ù
ÛâØªÙÙÙ `None` ÙÙ
باشÙ.
+
+تÙÛ Ù¾Ø§ÛØªÙÙ 3.6 Ù Ø¨Ø§ÙØ§ØªØ± (از جÙ
ÙÙ Ù¾Ø§ÛØªÙÙ 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]` ÙØ³ØªØ اÛ٠د٠تا Ù
عادÙÙ.
+
+ÛØ¹ÙÛ ØªÙÛ Ù¾Ø§ÛØªÙÙ 3.10Ø Ù
ÛâØªÙÙÛ Ø§Ø² `Something | None` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ:
+
+//// tab | Python 3.10+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial009_py310.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial009.py!}
+```
+
+////
+
+//// tab | Python 3.8+ جاÛگزÛÙ
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial009b.py!}
+```
+
+////
+
+#### Ø§Ø³ØªÙØ§Ø¯Ù از `Union` ÛØ§ `Optional`
+
+اگ٠از ÙØ³Ø®Ù Ù¾Ø§ÛØªÙÙ Ø²ÛØ± 3.10 Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛØ ÛÙ Ùکت٠از Ø¯ÛØ¯ Ø®ÛÙÛ **شخصÛ** Ø®ÙØ¯Ù
:
+
+* ð¨ Ø§Ø² `Optional[SomeType]` Ø§Ø³ØªÙØ§Ø¯Ù ÙÚ©Ù
+* ب٠جاش ⨠**از `Union[SomeType, None]` Ø§Ø³ØªÙØ§Ø¯Ù Ú©Ù** â¨.
+
+ÙØ± د٠Ù
عادÙÙ Ù Ø²ÛØ± Ù¾ÙØ³ØªÙ ÛÚ©ÛâØ§ÙØ ÙÙÛ Ù
Ù `Union` ر٠ب٠`Optional` ØªØ±Ø¬ÛØ Ù
ÛâØ¯Ù
ÚÙÙ Ú©ÙÙ
Ù "**Ø§Ø®ØªÛØ§Ø±Û**" اÙگارæç¤º Ù
ÛâÚ©ÙÙ Ú©Ù Ù
ÙØ¯Ø§Ø± Ø§Ø®ØªÛØ§Ø±ÛÙØ در ØØ§ÙÛ Ú©Ù Ø¯Ø± ÙØ§Ùع ÛØ¹ÙÛ "Ù
ÛâØªÙÙÙ `None` باشÙ"Ø ØØªÛ Ø§Ú¯Ù Ø§Ø®ØªÛØ§Ø±Û ÙØ¨Ø§Ø´Ù Ù ÙÙÙØ² ÙØ§Ø²Ù
باشÙ.
+
+Ùکر Ù
ÛâÚ©ÙÙ
`Union[SomeType, None]` ÙØ§Ø¶Øâتر ÙØ´ÙÙ Ù
ÛâØ¯Ù ÚÛ Ù
عÙÛ Ù
ÛâØ¯Ù.
+
+ÙÙØ· Ø¨ØØ« Ú©ÙÙ
ات ٠اسÙ
âÙØ§Ø³Øª. ÙÙÛ Ø§ÛÙ Ú©ÙÙ
ات Ù
ÛâØªÙÙ٠ر٠طرز Ùکر ت٠٠تÛÙ
ت ÙØ³Ø¨Øª ب٠کد ØªØ£Ø«ÛØ± بذارÙ.
+
+بÙâØ¹ÙÙØ§Ù Ù
Ø«Ø§ÙØ اÛ٠تابع ر٠ببÛÙ:
+
+{* ../../docs_src/python_types/tutorial009c.py hl[1,4] *}
+
+پاراÙ
تر `name` بÙâØ¹ÙÙØ§Ù `Optional[str]` تعرÛÙ Ø´Ø¯ÙØ ÙÙÛ **Ø§Ø®ØªÛØ§Ø±Û ÙÛØ³Øª**Ø ÙÙ
ÛâØªÙÙÛ ØªØ§Ø¨Ø¹ ر٠بدÙ٠پاراÙ
تر صدا Ú©ÙÛ:
+
+```Python
+say_hi() # اÙÙ ÙÙØ اÛ٠خطا Ù
ÛâØ¯Ù! ð±
+```
+
+پاراÙ
تر `name` **ÙÙÙØ² ÙØ§Ø²Ù
Ù** (ÙÙ *Ø§Ø®ØªÛØ§Ø±Û*) ÚÙÙ Ù
ÙØ¯Ø§Ø± Ù¾ÛØ´âÙØ±Ø¶ ÙØ¯Ø§Ø±Ù. با اÛÙ ØØ§ÙØ `name` Ù
ÙØ¯Ø§Ø± `None` Ø±Ù ÙØ¨ÙÙ Ù
ÛâÚ©ÙÙ:
+
+```Python
+say_hi(name=None) # اÛ٠کار Ù
ÛâÚ©ÙÙØ None Ù
عتبر٠ð
+```
+
+خبر Ø®ÙØ¨ اÛÙÙ Ú©Ù ÙÙØªÛ Ø±Ù Ù¾Ø§ÛØªÙÙ 3.10 Ø¨Ø§Ø´ÛØ ÙØ§Ø²Ù
ÙÛØ³Øª Ùگرا٠اÛÙ Ø¨Ø§Ø´ÛØ ÚÙÙ Ù
ÛâØªÙÙÛ Ø¨ÙâØ³Ø§Ø¯Ú¯Û Ø§Ø² `|` Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ Ø§ØªØØ§Ø¯ÛÙ ÙÙØ¹âÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ:
+
+{* ../../docs_src/python_types/tutorial009c_py310.py hl[1,4] *}
+
+اÙÙ Ù
ÙÙØ¹ دÛÚ¯Ù ÙØ§Ø²Ù
ÙÛØ³Øª Ùگرا٠اسÙ
âÙØ§ÛÛ Ù
ث٠`Optional` Ù `Union` باشÛ. ð
+
+#### ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û
+
+اÛÙ ÙÙØ¹âÙØ§ÛÛ Ú©Ù Ù¾Ø§Ø±Ø§Ù
ØªØ±ÙØ§Û ÙÙØ¹ ر٠تÙÛ Ú©Ø±ÙØ´ÙâÙØ§ Ù
ÛâÚ¯ÛØ±Ù Ø¨ÙØ´ÙÙ **ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û** ÛØ§ **Generics** Ù
ÛâÚ¯ÙØ Ù
Ø«ÙØ§Ù:
+
+//// tab | Python 3.10+
+
+Ù
ÛâØªÙÙÛ Ø§Ø² ÙÙ
ÙÙ ÙÙØ¹âÙØ§Û داخÙÛ Ø¨ÙâØ¹ÙÙØ§Ù ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ (با Ú©Ø±ÙØ´ÙâÙØ§ Ù ÙÙØ¹âÙØ§ Ø¯Ø§Ø®ÙØ´ÙÙ):
+
+* `list`
+* `tuple`
+* `set`
+* `dict`
+
+Ù ÙÙ
ÙÙâØ·ÙØ± ک٠تÙÛ Ù¾Ø§ÛØªÙÙ 3.8 Ø¨ÙØ¯Ø از Ù
اÚÙÙ `typing`:
+
+* `Union`
+* `Optional` (ÙÙ
ÙÙâØ·ÙØ± ک٠تÙÛ Ù¾Ø§ÛØªÙÙ 3.8 Ø¨ÙØ¯)
+* ...٠بÙÛÙ.
+
+تÙÛ Ù¾Ø§ÛØªÙÙ 3.10Ø Ø¨ÙâØ¹ÙÙØ§Ù جاÛگزÛÙ Ø¨Ø±Ø§Û Ø§Ø³ØªÙØ§Ø¯Ù از ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û `Union` Ù `Optional`Ø Ù
ÛâØªÙÙÛ Ø§Ø² خط عÙ
ÙØ¯Û (`|`) Ø¨Ø±Ø§Û ØªØ¹Ø±ÛÙ Ø§ØªØØ§Ø¯ÛÙ ÙÙØ¹âÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛØ Ú©Ù Ø®ÛÙÛ Ø¨ÙØªØ± ٠سادÙâØªØ±Ù.
+
+////
+
+//// tab | Python 3.9+
+
+Ù
ÛâØªÙÙÛ Ø§Ø² ÙÙ
ÙÙ ÙÙØ¹âÙØ§Û داخÙÛ Ø¨ÙâØ¹ÙÙØ§Ù ÙÙØ¹âÙØ§Û عÙ
ÙÙ
Û Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ (با Ú©Ø±ÙØ´ÙâÙØ§ Ù ÙÙØ¹âÙØ§ Ø¯Ø§Ø®ÙØ´ÙÙ):
+
+* `list`
+* `tuple`
+* `set`
+* `dict`
+
+Ù ÙÙ
ÙÙâØ·ÙØ± ک٠تÙÛ Ù¾Ø§ÛØªÙÙ 3.8 Ø¨ÙØ¯Ø از Ù
اÚÙÙ `typing`:
+
+* `Union`
+* `Optional`
+* ...٠بÙÛÙ.
+
+////
+
+//// tab | Python 3.8+
+
+* `List`
+* `Tuple`
+* `Set`
+* `Dict`
+* `Union`
+* `Optional`
+* ...٠بÙÛÙ.
+
+////
+
+### Ú©ÙØ§Ø³âÙØ§ بÙâØ¹ÙÙØ§Ù ÙÙØ¹
+
+Ù
ÛâØªÙÙÛ ÛÙ Ú©ÙØ§Ø³ ر٠ÙÙ
بÙâØ¹ÙÙØ§Ù ÙÙØ¹ ÛÙ Ù
ØªØºÛØ± تعرÛÙ Ú©ÙÛ.
+
+ÙØ±Ø¶ Ú©Ù ÛÙ Ú©ÙØ§Ø³ `Person` Ø¯Ø§Ø±ÛØ با ÛÙ ÙØ§Ù
:
+
+{* ../../docs_src/python_types/tutorial010.py hl[1:3] *}
+
+بعد Ù
ÛâØªÙÙÛ ÛÙ Ù
ØªØºÛØ± ر٠از ÙÙØ¹ `Person` تعرÛÙ Ú©ÙÛ:
+
+{* ../../docs_src/python_types/tutorial010.py hl[6] *}
+
+Ù Ø¨Ø¹Ø¯Ø Ø¯ÙØ¨Ø§Ø±ÙØ ÙÙ
Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÛØ±Ø§Ûشگر ر٠دارÛ:
+
+
+
+ØªÙØ¬Ù ک٠ک٠اÛÙ ÛØ¹ÙÛ "`one_person` ÛÙ **ÙÙ
ÙÙÙ** از Ú©ÙØ§Ø³ `Person` ÙØ³Øª".
+
+ÛØ¹ÙÛ "`one_person` Ø®ÙØ¯ **Ú©ÙØ§Ø³** ب٠اسÙ
`Person` ÙÛØ³Øª".
+
+## Ù
دÙâÙØ§Û Pydantic
+
+Pydantic Û٠کتابخÙÙÙ Ù¾Ø§ÛØªÙÙÙ Ø¨Ø±Ø§Û Ø§Ø¹ØªØ¨Ø§Ø±Ø³ÙØ¬Û دادÙâÙØ§.
+
+"Ø´Ú©Ù" دادÙâÙØ§ ر٠بÙâØ¹ÙÙØ§Ù Ú©ÙØ§Ø³âÙØ§ÛÛ Ø¨Ø§ ÙÛÚÚ¯ÛâÙØ§ تعرÛÙ Ù
ÛâÚ©ÙÛ.
+
+Ù ÙØ± ÙÛÚÚ¯Û ÛÙ ÙÙØ¹ دارÙ.
+
+بعد ÛÙ ÙÙ
ÙÙ٠از اÙÙ Ú©ÙØ§Ø³ ر٠با ÛÙ Ø³Ø±Û Ù
ÙØ¯Ø§Ø± Ù
ÛâØ³Ø§Ø²Û Ù Ø§ÙÙ Ù
ÙØ¯Ø§Ø±Ùا Ø±Ù Ø§Ø¹ØªØ¨Ø§Ø±Ø³ÙØ¬Û Ù
ÛâÚ©ÙÙØ ب٠ÙÙØ¹ Ù
ÙØ§Ø³Ø¨ تبدÛÙØ´ÙÙ Ù
ÛâÚ©ÙÙ (Ø§Ú¯Ù ÙØ§Ø²Ù
باشÙ) Ù ÛÙ Ø´ÛØ¡ با ÙÙ
٠دادÙâÙØ§ Ø¨ÙØª Ù
ÛâØ¯Ù.
+
+٠با اÙÙ Ø´ÛØ¡ ÙÙØ§ÛÛ ÙÙ
Ù Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÛØ±Ø§Ûشگر ر٠Ù
ÛâÚ¯ÛØ±Û.
+
+ÛÙ Ù
ثا٠از Ù
Ø³ØªÙØ¯Ø§Øª رسÙ
Û Pydantic:
+
+//// tab | Python 3.10+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011_py310.py!}
+```
+
+////
+
+//// tab | Python 3.9+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+```Python
+{!> ../../docs_src/python_types/tutorial011.py!}
+```
+
+////
+
+/// info
+
+Ø¨Ø±Ø§Û Ø§Ø·ÙØ§Ø¹Ø§Øª Ø¨ÛØ´ØªØ± در Ù
ÙØ±Ø¯ PydanticØ Ù
Ø³ØªÙØ¯Ø§ØªØ´ ر٠ÚÚ© Ú©Ù.
+
+///
+
+**FastAPI** کاÙ
ÙØ§Ù بر پاÛÙ Pydantic ÙØ³Øª.
+
+تÙÛ [Ø¢Ù
ÙØ²Ø´ - راÙÙÙ
Ø§Û Ú©Ø§Ø±Ø¨Ø±](tutorial/index.md){.internal-link target=_blank} Ø®ÛÙÛ Ø¨ÛØ´ØªØ± از اÛÙØ§ ر٠تÙÛ Ø¹Ù
Ù Ù
ÛâØ¨ÛÙÛ.
+
+/// tip
+
+Pydantic ÛÙ Ø±ÙØªØ§Ø± خاص دار٠ÙÙØªÛ از `Optional` ÛØ§ `Union[Something, None]` بدÙÙ Ù
ÙØ¯Ø§Ø± Ù¾ÛØ´âÙØ±Ø¶ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛØ Ù
ÛâØªÙÙÛ ØªÙÛ Ù
Ø³ØªÙØ¯Ø§Øª Pydantic در Ù
ÙØ±Ø¯ ÙÛÙØ¯ÙØ§Û Ø§Ø®ØªÛØ§Ø±Û ÙØ§Ø²Ù
Ø¨ÛØ´ØªØ± بخÙÙÛ.
+
+///
+
+## ÙÙØ¹âÙÙ
Ø§ÙØ§ با AnnotationÙØ§Û Ù
ØªØ§Ø¯ÛØªØ§
+
+Ù¾Ø§ÛØªÙÙ ÛÙ ÙØ§Ø¨ÙÛØª ÙÙ
Ø¯Ø§Ø±Ù Ú©Ù Ø¨ÙØª اجاز٠Ù
ÛâØ¯Ù **Ù
ØªØ§Ø¯ÛØªØ§ اضاÙÛ** ر٠تÙÛ Ø§ÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§ Ø¨Ø°Ø§Ø±Û Ø¨Ø§ Ø§Ø³ØªÙØ§Ø¯Ù از `Annotated`.
+
+//// tab | Python 3.9+
+
+تÙÛ Ù¾Ø§ÛØªÙÙ 3.9Ø `Annotated` Ø¨Ø®Ø´Û Ø§Ø² کتابخÙÙÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ÙØ Ù¾Ø³ Ù
ÛâØªÙÙÛ Ø§Ø² `typing` ÙØ§Ø±Ø¯Ø´ Ú©ÙÛ.
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial013_py39.py!}
+```
+
+////
+
+//// tab | Python 3.8+
+
+تÙÛ ÙØ³Ø®ÙâÙØ§Û Ø²ÛØ± Ù¾Ø§ÛØªÙÙ 3.9Ø `Annotated` ر٠از `typing_extensions` ÙØ§Ø±Ø¯ Ù
ÛâÚ©ÙÛ.
+
+با **FastAPI** از ÙØ¨Ù ÙØµØ¨ شدÙ.
+
+```Python hl_lines="1 4"
+{!> ../../docs_src/python_types/tutorial013.py!}
+```
+
+////
+
+Ø®ÙØ¯ Ù¾Ø§ÛØªÙ٠با اÛÙ `Annotated` Ú©Ø§Ø±Û ÙÙ
ÛâÚ©ÙÙ. Ù Ø¨Ø±Ø§Û ÙÛØ±Ø§ÛØ´Ú¯Ø±ÙØ§ Ù Ø§Ø¨Ø²Ø§Ø±ÙØ§Û دÛÚ¯ÙØ ÙÙØ¹ ÙÙÙØ² `str` ÙØ³Øª.
+
+ÙÙÛ Ù
ÛâØªÙÙÛ Ø§Ø² اÛÙ ÙØ¶Ø§ تÙÛ `Annotated` Ø§Ø³ØªÙØ§Ø¯Ù Ú©ÙÛ ØªØ§ ب٠**FastAPI** Ù
ØªØ§Ø¯ÛØªØ§Û اضاÙÛ Ø¯Ø± Ù
ÙØ±Ø¯ اÛÙÚ©Ù ÚØ·Ùر Ù
ÛâØ®ÙØ§Û Ø¨Ø±ÙØ§Ù
ÙâØ§Øª Ø±ÙØªØ§Ø± Ú©Ù٠بدÛ.
+
+Ùکت٠Ù
ÙÙ
اÛÙÙ Ú©Ù **اÙÙÛÙ *پاراÙ
تر ÙÙØ¹*** ک٠ب٠`Annotated` Ù
ÛâØ¯ÛØ **ÙÙØ¹ ÙØ§ÙعÛ** ÙØ³Øª. بÙÛØ´ ÙÙØ· Ù
ØªØ§Ø¯ÛØªØ§ Ø¨Ø±Ø§Û Ø§Ø¨Ø²Ø§Ø±ÙØ§Û دÛÚ¯ÙâØ³Øª.
+
+Ø§ÙØ§Ù ÙÙØ· Ø¨Ø§ÛØ¯ بدÙÙÛ Ú©Ù `Annotated` ÙØ¬Ùد Ø¯Ø§Ø±ÙØ ٠اÛÙÚ©Ù Ù¾Ø§ÛØªÙÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯Ù. ð
+
+بعدا٠Ù
ÛâØ¨ÛÙÛ Ú©Ù ÚÙØ¯Ø± **ÙÙÛ** Ù
ÛâØªÙÙ٠باشÙ.
+
+/// tip
+
+اÛÙک٠اÛÙ **Ù¾Ø§ÛØªÙÙ Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯Ù** ÛØ¹ÙÛ ÙÙÙØ² **Ø¨ÙØªØ±ÛÙ ØªØ¬Ø±Ø¨Ù ØªÙØ³Ø¹ÙâØ¯ÙÙØ¯Ù** ر٠تÙÛ ÙÛØ±Ø§ÛØ´Ú¯Ø±ØªØ Ø¨Ø§ Ø§Ø¨Ø²Ø§Ø±ÙØ§ÛÛ Ú©Ù Ø¨Ø±Ø§Û ØªØÙÛÙ Ù Ø¨Ø§Ø²Ø³Ø§Ø²Û Ú©Ø¯Øª Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÛ Ù ØºÛØ±Ù Ù
ÛâÚ¯ÛØ±Û. â¨
+
+Ù ÙÙ
ÛÙâØ·ÙØ± کدت با Ø®ÛÙÛ Ø§Ø² Ø§Ø¨Ø²Ø§Ø±ÙØ§ ٠کتابخÙÙÙâÙØ§Û دÛÚ¯Ù Ù¾Ø§ÛØªÙÙ Ø®ÛÙÛ Ø³Ø§Ø²Ú¯Ø§Ø± Ù
ÛâÙ
ÙÙÙ. ð
+
+///
+
+## ÙÙØ¹âÙÙ
Ø§ÙØ§ تÙÛ **FastAPI**
+
+**FastAPI** از اÛÙ ÙÙØ¹âÙÙ
Ø§ÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©Ù٠تا ÚÙØ¯ تا کار بکÙÙ.
+
+با **FastAPI** پاراÙ
ØªØ±ÙØ§ ر٠با ÙÙØ¹âÙÙ
Ø§ÙØ§ تعرÛÙ Ù
ÛâÚ©ÙÛ Ù Ø§ÛÙØ§ ر٠Ù
ÛâÚ¯ÛØ±Û:
+
+* **Ù¾Ø´ØªÛØ¨Ø§ÙÛ ÙÛØ±Ø§Ûشگر**.
+* **ÚÚ© ÙÙØ¹âÙØ§**.
+
+...Ù **FastAPI** از ÙÙ
Ù٠تعرÛÙâÙØ§ Ø¨Ø±Ø§Û Ø§ÛÙØ§ Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâÚ©ÙÙ:
+
+* **تعرÛÙ ÙÛØ§Ø²Ùا**: از پاراÙ
ØªØ±ÙØ§Û Ù
Ø³ÛØ± Ø¯Ø±Ø®ÙØ§Ø³ØªØ پاراÙ
ØªØ±ÙØ§Û Ú©ÙØ¦Ø±ÛØ ÙØ¯Ø±ÙØ§Ø Ø¨Ø¯ÙÙâÙØ§Ø ÙØ§Ø¨Ø³ØªÚ¯ÛâÙØ§ Ù ØºÛØ±Ù.
+* **تبدÛ٠دادÙ**: از Ø¯Ø±Ø®ÙØ§Ø³Øª ب٠ÙÙØ¹ Ù
ÙØ±Ø¯ ÙÛØ§Ø².
+* **Ø§Ø¹ØªØ¨Ø§Ø±Ø³ÙØ¬Û دادÙ**: ک٠از ÙØ± Ø¯Ø±Ø®ÙØ§Ø³Øª Ù
ÛØ§Ø¯:
+ * تÙÙÛØ¯ **Ø®Ø·Ø§ÙØ§Û Ø®ÙØ¯Ú©Ø§Ø±** Ú©Ù Ø¨Ù Ú©ÙØ§ÛÙØª برÙ
Ûâگرد٠ÙÙØªÛ Ø¯Ø§Ø¯Ù ÙØ§Ù
عتبرÙ.
+* **Ù
Ø³ØªÙØ¯Ø³Ø§Ø²Û** API با Ø§Ø³ØªÙØ§Ø¯Ù از OpenAPI:
+ * ک٠بعدش ØªÙØ³Ø· رابطâÙØ§Û Ú©Ø§Ø±Ø¨Ø±Û Ù
Ø³ØªÙØ¯Ø§Øª تعاÙ
ÙÛ Ø®ÙØ¯Ú©Ø§Ø± Ø§Ø³ØªÙØ§Ø¯Ù Ù
ÛâØ´Ù.
+
+اÛÙØ§ Ø´Ø§ÛØ¯ ÙÙ
ÙâØ´ Ø§ÙØªØ²Ø§Ø¹Û Ø¨Ù ÙØ¸Ø± Ø¨ÛØ§Ø¯. ÙÚ¯Ø±Ø§Ù ÙØ¨Ø§Ø´. ÙÙ
٠اÛÙØ§ ر٠تÙÛ Ø¹Ù
٠تÙÛ [Ø¢Ù
ÙØ²Ø´ - راÙÙÙ
Ø§Û Ú©Ø§Ø±Ø¨Ø±](tutorial/index.md){.internal-link target=_blank} Ù
ÛâØ¨ÛÙÛ.
+
+Ùکت٠Ù
ÙÙ
اÛÙ٠ک٠با Ø§Ø³ØªÙØ§Ø¯Ù از ÙÙØ¹âÙØ§Û Ø§Ø³ØªØ§ÙØ¯Ø§Ø±Ø¯ Ù¾Ø§ÛØªÙÙØ تÙÛ Û٠جا (Ø¨Ù Ø¬Ø§Û Ø§Ø¶Ø§ÙÙ Ú©Ø±Ø¯Ù Ú©ÙØ§Ø³âÙØ§Û Ø¨ÛØ´ØªØ±Ø Ø¯Ú©ÙØ±Ø§ØªÙØ±ÙØ§ Ù ØºÛØ±Ù)Ø **FastAPI** Ú©ÙÛ Ø§Ø² کار ر٠برات Ø§ÙØ¬Ø§Ù
Ù
ÛâØ¯Ù.
+
+/// info
+
+اگ٠ÙÙ
٠آÙ
ÙØ²Ø´ ر٠گذرÙÙØ¯Û Ù Ø¨Ø±Ú¯Ø´ØªÛ Ú©Ù Ø¨ÛØ´ØªØ± در Ù
ÙØ±Ø¯ ÙÙØ¹âÙØ§ ببÛÙÛØ ÛÙ Ù
ÙØ¨Ø¹ Ø®ÙØ¨ "تÙÙØ¨âÙØ§Ù
Ù" از `mypy` ÙØ³Øª.
+
+///