Code Verse
159 subscribers
84 photos
29 files
4 links
Download Telegram
تا حالا برات پیش اومده که توی چندارث‌بری پایتون، super() رفتارش عجیب بشه؟ 🌀🐍

در پایتون وقتی از چند ارث‌بری استفاده می‌کنیم، ترتیب جستجوی متدها با الگوریتمی به اسم MRO (Method Resolution Order) مشخص می‌شه. این ترتیب همیشه خطی و مشخصه، ولی توی ساختارهای پیچیده ممکنه super() رفتاری غیرمنتظره نشون بده؛ مثلاً وقتی سه کلاس درگیر زنجیره ارث‌بری هستن و متدی از یکی از اون‌ها به شکل غیرمستقیم صدا زده می‌شه.


🌌 @the_code_Verse 🪐
1
8. چگونه می‌توان از query annotation برای افزودن فیلدهای محاسباتی در QuerySet استفاده کرد؟

#question #django

🌌 @the_code_Verse 🪐
👎1
تا حالا خواستی توی Django یه فیلد محاسباتی به QuerySet اضافه کنی بدون اینکه توی دیتابیس ذخیره بشه؟ ⚡️

جنگو قابلیتی داره به اسم query annotation که به ما اجازه می‌ده موقع ساخت QuerySet، ستون‌های محاسباتی مثل جمع، میانگین یا شرط‌های خاص رو به نتایج اضافه کنیم؛ بدون اینکه این فیلدها واقعاً در جدول پایگاه‌داده وجود داشته باشن. این کار ابزار قدرتمندی برای گزارش‌گیری و پردازش داده‌هاست.

🌌 @the_code_Verse 🪐
👎21
‏9. یک generator بساز که مقدار بگیرد (send) و وقتی عدد منفی فرستاده شد، exception پرتاب کند و ادامه دهد.

#question #python

🌌 @the_code_Verse 🪐
4👎1
چطور میشه یک generator ساخت که هم مقدار بگیره هم خطا مدیریت کنه؟ 😎

میخوایم یک generator بنویسیم که با send() مقدار دریافت کنه، و وقتی عدد منفی فرستاده شد، یک Exception پرتاب کنه ولی جریان ادامه پیدا کنه. این یعنی generator میتونه همزمان ورودی بگیره و خطاها رو کنترل کنه بدون اینکه متوقف بشه.

🌌 @the_code_Verse 🪐
2👍1👎1
9. فرق بین lazy evaluation و eager evaluation در Django QuerySets چیست و چه زمانی مشکل ایجاد می‌کند؟

#question #django

🌌 @the_code_Verse 🪐
👎1🔥1
همیشه همه‌چیز همون لحظه اجرا نمی‌شه… گاهی «تنبل بودن» بیشتر به کار میاد تا «عجله داشتن»

تفاوت اصلی بین lazy evaluation و eager evaluation توی QuerySetهای جنگو اینه که QuerySet تا وقتی واقعا نیاز نباشه، اجرا نمی‌شه (lazy). ولی بعضی متدها باعث می‌شن همون لحظه کوئری به دیتابیس زده بشه (eager). این تفاوت اگه درست مدیریت نشه، می‌تونه باعث کوئری‌های اضافی یا عملکرد غیرمنتظره بشه.

🌌 @the_code_Verse 🪐
1👎1👏1
‏10. چرا نمی‌توان یک dictionary را مستقیماً به تابعی که lru_cache@ دارد پاس داد؟ راه حل چیست؟

#question #python

🌌 @the_code_Verse 🪐
👎1🔥1
چرا یه دیکشنری بی‌گناه نمی‌تونه وارد دنیای lru_cache بشه؟ 😎

چرا نمی‌تونیم یک dictionary را مستقیم به تابعی که lru_cache@ دارد پاس دهیم؟ دلیلش اینه که دیکشنری‌ها غیرقابل هش هستند و lru_cache نمی‌تونه از اون‌ها به عنوان کلید استفاده کنه. برای حل این مشکل، باید داده‌ها را به نوع هش‌پذیر تبدیل کرد یا روش جایگزین کشینگ به کار برد.

🌌 @the_code_Verse 🪐
2👎1