یک کلاس Python بنویسید که یک فایل متنی شامل اعداد را می‌خواند و با استفاده از decoratorِ built-inِ @property خواص آماری (مانند mean، standard deviation، min، max و sum) را به‌صورت lazy (فقط در اولین دسترسی محاسبه شده و نتیجه کش می‌شود) بازگرداند و امکان بازخوانی (reload) داده‌ها را فراهم کند.

1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:29

0.0

در __init__ نام فایل را بگیرید و یک متد private برای خواندن و تبدیل خطوط به لیست float بسازید؛ برای هر خاصیت (mean، std، min، max، sum) یک @property تعریف کنید که اگر مقدار کش‌شده None بود آن را محاسبه و در یک متغیر خصوصی ذخیره کند. می‌توانید از ماژول‌های استاندارد مثل statistics یا از توابع پایه (sum، len و math.sqrt برای واریانس/انحراف معیار) استفاده کنید؛ برای بازخوانی داده‌ها متدی بنویسید که لیست داده را دوباره بارگذاری کرده و کش‌ها را پاک می‌کند. نکات: خطوط خالی را نادیده بگیرید، خطاهای تبدیل را هندل کنید و برای فایل خالی رفتار مناسبی (مثلاً پرتاب ValueError یا برگرداندن None) تعریف نمایید.

توسط پژوهشگر در 221 روز قبل ساعت 01:29
دسته بندی ها: Python Python for beginner
arman در 221 روز قبل ساعت 13:07

برای lazy بودن، از None به‌عنوان مقدار کش نشده استفاده کنید تا هر خاصیت فقط در اولین دسترسی محاسبه و کش شود. متد reload باید داده‌ها را دوباره بخواند و همه کش‌ها را به None بازنشانی کند تا مقادیر جدید منعکس شوند. برای خطوط خالی یا تبدیل ناموفق، تصمیم واضحی بگیرید: مثلاً یا ValueError بدهید یا None برگردانید و در محاسبه‌های بعدی خطا را مدیریت کنید. همچنین به رفتار فایل خالی توجه کنید و تعیین کنید که آیا باید ValueError پرتاب شود یا None بازگردانید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری