تمرین کلاس ژنریک در پایتون

Please login to bookmark Close

تمرین کلاس ژنریک در پایتون

در واقع، در این صفحه تمرین کلاس ژنریک در پایتون را از آسان به سخت تمرین می‌کنید.

نام دورهدوره تایپ‌هینت در پایتون
درسنامهفصل دهم: کلاس‌های ژنریک
پاسخنامهمشاهده پاسخنامه

یک کلاس به نام Result بنویسید که نتیجه‌ی یک عملیات را نگه دارد. این کلاس باید:

  • یا یک مقدارِ موفق داشته باشد، یا یک پیام خطا
  • ژنریک باشد نسبت به نوعِ مقدارِ موفق
  • متدی به نام is_ok داشته باشد که بگوید عملیات موفق بوده یا نه
  • متدی به نام unwrap که مقدار را برگرداند و اگر خطا بود، استثنا بیندازد
  • متدی به نام unwrap_or که مقدار را برگرداند و اگر خطا بود، یک پیش‌فرض بدهد
  • دو سازنده‌ی کلاسی به نام‌های ok و fail

سپس با آن یک تابع find_user بنویسید.

راهنمای حل تمرین کلاس ژنریک در پایتون

اگر در حل تمرین کلاس ژنریک در پایتون به مشکل خوردید، این چهار قدم را به ترتیب بروید.

  • صورت تمرین را دوباره بخوانید و خروجی مورد انتظار را روی کاغذ بنویسید.
  • کد را بدون تایپ‌هینت بنویسید تا کار کند، بعد هینت‌ها را اضافه کنید.
  • mypy را اجرا کنید و پیام خطا را کامل بخوانید؛ معمولاً خودش راه‌حل را می‌گوید.
  • فقط در آخرین قدم سراغ پاسخنامه بروید.

مرجع رسمی این موضوع مستندات ماژول typing در پایتون است که همه‌ی این ابزارها را با مثال شرح داده است.

چرا تمرین کلاس ژنریک در پایتون را جدی بگیرید

تفاوت کسی که تایپ‌هینت را می‌شناسد با کسی که آن را در کد واقعی به کار می‌برد، در همین تمرین‌ها روشن می‌شود. خواندن درسنامه فقط آشنایی می‌دهد، اما وقتی خودتان کد را می‌نویسید و تایپ‌چکر به شما ایراد می‌گیرد، مفهوم در ذهن می‌ماند. به همین دلیل تمرین کلاس ژنریک در پایتون را در قالب چند سؤال کوتاه و مستقل طراحی کرده‌ایم تا بتوانید هر کدام را جداگانه حل کنید و نتیجه را بلافاصله بسنجید.

برای حل این تمرین‌ها به محیط پیچیده‌ای نیاز ندارید. یک فایل پایتون خالی، نسخه‌ی ۳.۱۲ یا بالاتر، و mypy نصب‌شده کافی است. اگر ویرایشگر شما VS Code است، افزونه‌ی Pylance را هم فعال کنید تا خطاها را همان لحظه‌ی نوشتن ببینید و لازم نباشد هر بار به ترمینال برگردید.

خطاهای رایج در این تمرین

  • هینت را می‌نویسند اما هیچ‌وقت mypy را اجرا نمی‌کنند و تصور می‌کنند کد بررسی شده است.
  • به‌جای رفع ریشه‌ی خطا، سراغ Any یا type: ignore می‌روند.
  • نوع خروجی تابع را جا می‌اندازند و تایپ‌چکر بررسی را نیمه‌کاره رها می‌کند.
  • امضای تابع را عوض می‌کنند اما جاهایی که آن تابع را صدا می‌زنند فراموش می‌کنند.
Please login to bookmark Close
نظرات

دیدگاهتان را بنویسید

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم