راهنمای نوع داده و ساختارهای پایه (Type Hints)
اولین گام برای ایمنسازی کدها و غلبه بر خطاهای نامرئی
پایتون ذاتاً یک زبان با معماری نوعدهی پویا (Dynamically Typed) است. این یعنی یک متغیر میتواند در یک خط عدد باشد و در خط بعدی تبدیل به رشته شود! با بزرگ شدن پروژهها، این آزادی عمل بزرگترین عامل بروز باگهای فاجعهبار در نرمافزار است.
از نسخه ۳.۵، پایتون قابلیتی تحت عنوان **Type Hinting (نشانهگذاری نوع)** را معرفی کرد. با این سیستم، شما مستقیماً به ابزارهای برنامهنویسی (Linter ها مثل MyPy یا ویرایشگرهایی مثل VSCode) اعلام میکنید که ساختار هر متغیر، ورودی و خروجیِ توابع شما چیست.
var_name: type | سینتکس پایه برای تعریف نوع یک متغیر (مانند age: int = 25). |
def func() -> type: | نشانهگذاری قطعیِ نوع متغیری که یک تابع در نهایت به عنوان خروجی بازمیگرداند. |
list[type] | از پایتون ۳.۹ به بعد، برای تعیین نوع محتوای درون لیستها به سادگی از خود نوع list استفاده میکنیم (مثلاً list[str]). |
dict[key_type, val_type] | تعیین صریح نوع کلیدها و مقادیر در یک دیکشنری (مثلاً dict[str, float]). |
TypeA | TypeB | عملگر Union (اجتماع) از پایتون ۳.۱۰؛ مشخص میکند یک متغیر مجاز است یکی از چندین نوع داده شده را داشته باشد (مثلاً int | None). |
به یاد داشته باشید که Type Hint ها در پایتون صرفاً **"توصیه" (Hints)** هستند و در زمان اجرای برنامه (Runtime) توسط مفسر پایتون نادیده گرفته میشوند. یعنی اگر شما به متغیری از نوع int یک رشته پاس دهید، برنامه کماکان اجرا میشود! قدرت اصلی این ساختار زمانی آشکار میشود که پیش از اجرای کد، آن را توسط ابزارهای تحلیل ایستا (Static Type Checkers) بررسی کنید تا باگها پیش از تولید نمایان شوند.