یک دیکشنری پیکربندی نهایی برای یک الگوریتم عددی با استفاده از collections.ChainMap بسازید تا تنظیمات پیش‌فرض، تنظیمات کاربر و تنظیمات محیطی را ترکیب کند و مقدار نهایی n_threads و tolerance را چاپ کند.

14.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:59

0.0

برای حل، سه دیکشنری تعریف کنید: defaults (تنظیمات پیش‌فرض)، user (تنظیمات کاربر) و env (تنظیمات محیطی، مثلاً از os.environ خوانده و به عدد تبدیل کنید). سپس از collections.ChainMap به صورت ChainMap(user, env, defaults) استفاده کنید تا اولویت‌ها رعایت شوند (چپ به راست اولویت دارد) و با chain['n_threads'] و chain['tolerance'] مقادیر نهایی را خوانده یا با dict(chain) یک نسخهٔ یکپارچه بسازید؛ توجه کنید مقادیر عددی را به نوع مناسب تبدیل کنید و برای آزمایش می‌توانید یک محاسبهٔ سادهٔ عددی با numpy انجام دهید اما هدف اصلی تمرین استفاده از ChainMap و مدیریت اولویت‌هاست.

توسط پژوهشگر در 201 روز قبل ساعت 03:59
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 04:26

یک نکته کلیدی این است که ChainMap فقط اولویت‌ها را به صورت چپ به راست رعایت می‌کند (user، env، defaults)، بنابراین تنظیمات کاربر بیشترین اولویت را دارد. مقادیر محیطی از os.environ معمولاً رشته هستند، پس باید آنها را به عدد مناسب تبدیل کنید (int یا float) قبل از استفاده. بعد از ساخت ChainMap می‌توانید با dict(chain) یک نسخهٔ ترکیبی واحد بسازید و n_threads و tolerance را از آن بخوانید یا با chain.get(...) مقدار پیش‌فرض را نیز لحاظ کنید. برای آزمایش، اجرای یک محاسبهٔ ساده با numpy می‌تواند مفید باشد تا صحت ترکیب اولویت‌ها دیده شود.

گزارش

1 پاسخ

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

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