پاسخ تمرین تایپ هینت در پایتون
در واقع، در این صفحه پاسخ تمرین تایپ هینت در پایتون را همراه با کد کامل و توضیح هر تصمیم میبینید.
| نام دوره | دوره تایپهینت در پایتون |
| درسنامه | فصل اول: چرا تایپهینت؟ |
| تمرینها | مشاهده تمرینها |
def multiply(x: int, y: int) -> int:
return x * y
print(multiply("2", 3))
پایتون خطا نمیدهد و خروجی 22 است، زیرا "2" * 3 در پایتون یعنی تکرارِ رشته. در مقابل، mypy چنین گزارش میدهد:
error: Argument 1 to "multiply" has incompatible type "str"; expected "int"
این دقیقاً همان تفاوتی است که کلِ این دوره دربارهاش صحبت میکند: پایتون چیزی اعلام نمیکند، ابزارِ بررسی اعلام میکند.
چگونه از پاسخ تمرین تایپ هینت در پایتون بیشترین بهره را ببرید
پیش از خواندن کد، خودتان یک بار تمرین را حل کنید. مطالعهی پاسخ تمرین تایپ هینت در پایتون وقتی اثر دارد که پیشتر خودتان تلاش کرده باشید.
- کد خودتان را با کد این صفحه خط به خط مقایسه کنید.
- هر جا تفاوتی دیدید، دلیلش را در درسنامه دوباره بخوانید.
- کد را با دستور
mypyبررسی کنید تا مطمئن شوید خطایی باقی نمانده است. - یک نسخهی دیگر از پاسخ بنویسید که همان کار را سادهتر انجام دهد.
مرجع رسمی این موضوع مستندات ماژول typing در پایتون است که همهی این ابزارها را با مثال شرح داده است.
چرا پاسخ تمرین تایپ هینت در پایتون را جدی بگیرید
تفاوت کسی که تایپهینت را میشناسد با کسی که آن را در کد واقعی به کار میبرد، در همین تمرینها روشن میشود. خواندن درسنامه فقط آشنایی میدهد، اما وقتی خودتان کد را مینویسید و تایپچکر به شما ایراد میگیرد، مفهوم در ذهن میماند. به همین دلیل پاسخ تمرین تایپ هینت در پایتون را در قالب چند سؤال کوتاه و مستقل طراحی کردهایم تا بتوانید هر کدام را جداگانه حل کنید و نتیجه را بلافاصله بسنجید.
برای حل این تمرینها به محیط پیچیدهای نیاز ندارید. یک فایل پایتون خالی، نسخهی ۳.۱۲ یا بالاتر، و mypy نصبشده کافی است. اگر ویرایشگر شما VS Code است، افزونهی Pylance را هم فعال کنید تا خطاها را همان لحظهی نوشتن ببینید و لازم نباشد هر بار به ترمینال برگردید.
خطاهای رایج در این تمرین
- هینت را مینویسند اما هیچوقت
mypyرا اجرا نمیکنند و تصور میکنند کد بررسی شده است. - بهجای رفع ریشهی خطا، سراغ
Anyیاtype: ignoreمیروند. - نوع خروجی تابع را جا میاندازند و تایپچکر بررسی را نیمهکاره رها میکند.
- امضای تابع را عوض میکنند اما جاهایی که آن تابع را صدا میزنند فراموش میکنند.