کتاب مقدمهای بر Type Hinting و MyPy در پایتون با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
ارتقا کد پایتون: آموزش جامع Type Hinting و MyPy آینده کدنویسی پایتون در دستان شماست: با Type Hinting و MyPy حرفهایتر کد بزنید! آیا از باگهای غیرمنتظره در کدهای پایتون خود خسته شدهاید؟ آیا به دنبال...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره مقدمهای بر Type Hinting و MyPy در پایتون
موضوع کلی: برنامه نویسی
موضوع میانی: پایتون (Python)
📋 سرفصلهای دوره
- 1. مقدمهای بر برنامهنویسی و مفهوم تایپینگ
- 2. تایپینگ پویا (Dynamic Typing) در پایتون
- 3. مزایا و معایب تایپینگ پویا
- 4. تایپینگ ایستا (Static Typing) چیست؟
- 5. چرا به Type Hinting در پایتون نیاز داریم؟
- 6. معرفی MyPy: یک Static Type Checker برای پایتون
- 7. تفاوت بین Type Hinting و Type Checking
- 8. آمادهسازی محیط توسعه: نصب پایتون و MyPy
- 9. اجرای اولین بررسی نوع با MyPy
- 10. مبانی Type Hinting: انواع داده اولیه (int, str, float, bool)
- 11. راهنمای نوع برای متغیرها
- 12. راهنمای نوع برای آرگومانهای تابع
- 13. راهنمای نوع برای مقدار بازگشتی تابع
- 14. استفاده از `None` در Type Hinting
- 15. نوع خاص `Any`: چه زمانی و چگونه استفاده کنیم
- 16. معرفی ماژول `typing`
- 17. راهنمای نوع برای لیستها: `typing.List`
- 18. راهنمای نوع برای تاپلها: `typing.Tuple`
- 19. راهنمای نوع برای دیکشنریها: `typing.Dict`
- 20. راهنمای نوع برای مجموعهها: `typing.Set`
- 21. استفاده از انواع داخلی به جای `typing` (پایتون 3.9+)
- 22. نوع `Optional`: برای مقادیری که میتوانند `None` باشند
- 23. نوع `Union`: برای مقادیری با چند نوع ممکن
- 24. تفاوت `Union[str, None]` و `Optional[str]`
- 25. عملگر `|` به عنوان جایگزین `Union` (پایتون 3.10+)
- 26. راهنمای نوع برای لیستهای تودرتو
- 27. راهنمای نوع برای دیکشنریهای پیچیده
- 28. استفاده از کلاسها به عنوان راهنمای نوع
- 29. مفهوم Forward References و کاربرد آن
- 30. نصب و اجرای MyPy از طریق خط فرمان
- 31. تحلیل خطاهای رایج MyPy: خطای نوع آرگومان
- 32. تحلیل خطاهای رایج MyPy: خطای نوع مقدار بازگشتی
- 33. فایل پیکربندی `mypy.ini`: مقدمات
- 34. پیکربندی سطح سختگیری (Strict Mode) در MyPy
- 35. چگونه خطاها را با `# type: ignore` نادیده بگیریم
- 36. استفاده از `# type: ignore` با کدهای خطای خاص
- 37. مفهوم Stub Files (`.pyi`) و کاربرد آنها
- 38. پروژه `typeshed`: منبع Stubهای استاندارد
- 39. ایجاد Type Alias با استفاده از `TypeAlias`
- 40. راهنمای نوع در کلاسها: متدها و `self`
- 41. راهنمای نوع برای متدهای کلاس (`@classmethod`) و `cls`
- 42. راهنمای نوع برای متدهای استاتیک (`@staticmethod`)
- 43. راهنمای نوع برای propertyها
- 44. راهنمای نوع و وراثت (Inheritance)
- 45. مقدمهای بر Generics و `TypeVar`
- 46. ایجاد توابع Generic با `TypeVar`
- 47. ایجاد کلاسهای Generic با `TypeVar`
- 48. محدود کردن `TypeVar` (Constrained TypeVars)
- 49. محدود کردن `TypeVar` با Bound
- 50. `Callable`: راهنمای نوع برای توابع و اشیاء قابل فراخوانی
- 51. تعریف امضای دقیق توابع با `Callable`
- 52. `Literal`: محدود کردن مقادیر به چند گزینه خاص
- 53. `Final`: تعریف متغیرها و متدهای غیرقابل تغییر
- 54. `ClassVar`: تعریف متغیرهای سطح کلاس
- 55. `Protocol`: پیادهسازی تایپینگ اردکی (Structural Subtyping)
- 56. تعریف یک Protocol ساده
- 57. استفاده از `@runtime_checkable` برای Protocolها
- 58. `TypedDict`: تعریف ساختار دقیق برای دیکشنریها
- 59. `NamedTuple` و `typing.NamedTuple` برای ساختارهای دادهای
- 60. `NewType`: ایجاد انواع متمایز از انواع موجود
- 61. راهنمای نوع برای ژنراتورها (Generators) با `Generator`
- 62. راهنمای نوع برای Context Manager ها
- 63. راهنمای نوع برای توابع `async` و `await`
- 64. استفاده از `Coroutine` و `Awaitable`
- 65. راهنمای نوع برای دکوراتورها (Decorators)
- 66. مقدمهای بر `ParamSpec` برای دکوراتورها
- 67. استفاده از `Concatenate` به همراه `ParamSpec`
- 68. مفهوم `TypeGuard` برای محدود کردن انواع در زمان اجرا
- 69. پیادهسازی یک `TypeGuard` ساده
- 70. راهنمای نوع برای توابع با تعداد آرگومان متغیر (`*args` و `**kwargs`)
- 71. استفاده از `Unpack` برای `*args` و `**kwargs` (پایتون 3.11+)
- 72. مفهوم Variance: Covariance و Contravariance
- 73. کاربرد `TypeVar` با `covariant=True`
- 74. کاربرد `TypeVar` با `contravariant=True`
- 75. نوع `NoReturn`: برای توابعی که هرگز باز نمیگردند
- 76. نوع `ContextManager` از ماژول `typing`
- 77. راهنمای نوع برای متدهای خاص (مانند `__init__` و `__str__`)
- 78. استفاده از MyPy در ویرایشگرهای کد (مانند VS Code)
- 79. یکپارچهسازی MyPy با ابزارهای CI/CD (مانند GitHub Actions)
- 80. استراتژیهای افزودن Type Hint به پروژههای موجود
- 81. استفاده از ابزار `pytype` برای استنتاج خودکار انواع
- 82. استفاده از ابزار `MonkeyType` برای تولید انواع از تستها
- 83. تأثیر Type Hinting بر عملکرد (Performance) برنامه
- 84. استفاده از Type Hintها برای تولید مستندات خودکار (با Sphinx)
- 85. اشتباهات متداول در استفاده از Type Hinting
- 86. چالشهای کار با کتابخانههایی که Type Hint ندارند
- 87. چگونه برای کتابخانههای شخص ثالث Stub بنویسیم
- 88. راهنمای نوع برای کار با فایلها (`IO` و `TextIO`)
- 89. راهنمای نوع در پروژههای Django
- 90. راهنمای نوع در فریمورک FastAPI
- 91. راهنمای نوع در کار با دیتابیسها و ORMها
- 92. مفهوم Type Narrowing (تحدید نوع)
- 93. راهنمای نوع برای کار با JSON
- 94. بررسی افزونههای MyPy (MyPy Plugins)
- 95. نوشتن یک افزونه ساده برای MyPy
- 96. مقایسه MyPy با ابزارهای دیگر (Pyright, Pyre)
- 97. آینده تایپینگ در پایتون و PEPهای جدید
- 98. جمعبندی مفاهیم کلیدی دوره
- 99. پروژه عملی: بازسازی یک کدبیس بدون نوع به همراه Type Hint
- 100. مرور و تحلیل پروژه عملی
تگها:
MyPy
Python
Python 3
static analysis
Type Checking
Type Hinting
آموزش پایتون
برنامه نویسی
برنامه نویسی شی گرا
پایتون
توسعه پایتون
خطایابی پایتون
کدنویسی تمیز
مقدمه پایتون
یادگیری پایتون
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.