یک اسکریپت پایتون بنویس که با استفاده از globals() تمام توابعی که در فضای نام سراسری با پیشوند "compute_" تعریف شده‌اند را پیدا کند و هرکدام را روی یک لیست ورودی‌های عددی اجرا کرده و نتایج را در دیکشنری‌ای با کلید نام تابع ذخیره کند.

3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:58

0.0

برای حل، از globals() برای گرفتن دیکشنری فضای نام سراسری استفاده کنید، روی آیتم‌ها پیمایش کنید و آن‌هایی که اسمشان با "compute_" شروع می‌شود و callable هستند را انتخاب کنید؛ سپس برای هر تابع، ورودی‌ها را (مثلاً یک لیست اعداد یا numpy.array) به آن پاس دهید و خروجی را در یک دیکشنری مانند { "compute_x": [نتایج], ... } ذخیره کنید. نکات: قبل از فراخوانی بررسی کنید که تابع خطا ندهد (با try/except)، و اگر از numpy استفاده می‌کنید مطمئن شوید توابع قادر به دریافت آرایه‌ها هستند یا برای هر مقدار به‌صورت عنصر به عنصر فراخوانی کنید.

توسط پژوهشگر در 220 روز قبل ساعت 01:58
دسته بندی ها: Python Python for beginner
reyhaneh در 220 روز قبل ساعت 11:21

نکتهٔ کلیدی این است که globals() می‌تواند آیتم‌های غیر مربوط را نیز برگرداند، پس تنها مواردی را که نامشان با compute_ آغاز می‌شود و callable هستند، انتخاب کنید. برای ورودی‌ها، اگر توابع انتظار ورودی‌های مختلفی دارند، می‌توانید همه‌ را به صورت آرایه یا لیستی تحویل دهید و در صورت نیاز از numpy.vectorize یا روش‌های عنصربه‌عنصر استفاده کنید تا از فراخوانی جداگانه برای هر مقدار جلوگیری شود. هر فراخوانی را با try/except احاطه کنید تا در صورت وقوع استثنا، خطا را ثبت کرده و اجرای کل متوقف نشود. برای خروجیِ قابل پیش‌بینی، نتایج را با نام تابع و به ترتیبی مشخص (مثلاً با sorted) بنویسید و در صورت وجود خطاها، اطلاعات خطای مربوط را نیز ذخیره کنید.

گزارش

1 پاسخ

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

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