tgoop.com/pyHints/822
Last Update:
داشتم یک کدی رو امروز روش کار میکردم؛ که یک سری کانفیگ از یوزر میگیره اما اگر وجود نداشت یک سری دیفالت رو بجاش استفاده میکنه و تمام این تنظیمات dictionary هستند.
مشکل بعدیش این بود که تنظیمات دیفالت هم خودش توسط یگ یوزر دیگه تعریف میشه و لزوما تنظیمات صفر ابزار ما نیست.
بطور خلاصه ما یک dict داریم که خودش یک سری تنظیمات داره؛ ولی ممکنه یک بخشهایی رو یک نفر بخواد تغییر بده پس باید overwrite بشه! ولی اجازه overwrite نداریم چون ممکنه کاربر نهایی تنظیماتش رو بخواد reset کنه ولی این وسط ممکنه تنظیمات از طریق مشتریهای میانی به دست کاربر نهایی رسیده باشه و مشتری میانی نخواد کاربر رو مستقیم به ما وصل کنه (مطمئن باشه ما دورش نمیزنیم ولی خودش هم برنامهنویس نیست که سایت و ابزارهای خودش رو توسعه بده)
خلاصه که ممکنه چیزی که نهایتا به مشتری آخر میرسه اینطوری باشه :default -> default -> default -> ....... -> default
و بعد مشتری نهایی سیستم اون رو برای خودش شخصیسازی کنه.
کلی راهکار پیشنهاد شد؛ یکباره یاد ChainMap توی پایتون افتادم اول رفتم یک تست گرفتم مطمئن بشم به محدودیتهای بیزینس نمیخوریم بعد کد رو دادیم رفت بالا (شد بهترین راهکار) چون خودم اصلا یادم نبود که ChainMap همچین کاربردی داشته باشم گفتم با شما هم به اشتراک بذارم.
اگر یکی از مقادیر توسط مشتریها تعریف نشده باشه؛ در اونصورت از دیکشنری default خونده میشه.
BY Python Hints

Share with your friend now:
tgoop.com/pyHints/822
