cookie

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك. بالنقر على "قبول الكل"، أنت توافق على استخدام ملفات تعريف الارتباط.

avatar

HICTE Blog

گروهمون: @HicteGroup خودم: @hicte دسته بندی پست‌ها: t.me/HicteBlog/743

إظهار المزيد
مشاركات الإعلانات
1 146
المشتركون
+124 ساعات
-57 أيام
-1130 أيام

جاري تحميل البيانات...

معدل نمو المشترك

جاري تحميل البيانات...

#پایتون هر وقت صحبت از شیء گرایی و ارث بری میشه پای Mixin هم میاد وسط. اما دقیقا چیه؟ Mixin توی پایتون یک الگو هستش و کدهایی که از این الگو بهره می‌برند کلمه‌ی کلیدی خاصی یا چیز اضافه‌تری ندارند. فرض کنین ما می‌خواهیم یک متد جدید به یک کلاس اضافه کنیم تا کارایی یا Functionality اون رو زیاد کنیم. اینجا میشه از Mixin استفاده کرد. مثلا کلاس‌های زیر رو در نظر بگیرید.
class Vehicle:
    pass

class Car(Vehicle):
    pass

class Van(Vehicle):
    pass

class Motorcycle(Vehicle):
    pass
حالا نیاز داریم که متد play music رو هم به این کلاس ها اضافه کنیم، دوتا راه داریم. اولیش اینه که:
class Vehicle:
    pass

class Car(Vehicle):

    def play_music(self):
        print("play_music")

class Van(Vehicle):

    def play_music(self):
        print("play_music")
    
class Motorcycle(Vehicle):
    pass
اما یک ایرادی وجود داره. اینجا خودمون رو تکرار کردیم. درواقع اومدیم دوبار یک تکه کد رو تکرار کردیم و این از نظر کدینگ وجه خوبی نداره. پس این راه حل ما نیست. روش دوم اینه بیایم به بیس کلاسمون یعنی Vehicle یک متد تحت عنوان play_music اضافه کنیم.
class Vehicle:
    def play_music(self):
        print("play_music")

class Car(Vehicle):
    pass

class Van(Vehicle):
    pass

class Motorcycle(Vehicle):
    pass
اما در این صورت کلاس موتورسیکلت هم دارای رفتار پخش موزیک خواهد شد و این اشتباه است. اینجا است که Mixin خودش رو نشون می‌ده. به کد زیر توجه کنید.
class Vehicle:
    pass

class PlayMusicMixin:
    def play_music(self):
        print("play_music")

class Car(Vehicle, PlayMusicMixin):
    pass

class Van(Vehicle, PlayMusicMixin):
    pass

class Motorcycle(Vehicle):
    pass
درواقع از کلاس PlayMusicMixin قرار نیست هیچ شیٔ ای ساخته شود و صرفا مهم این است که کارایی کلاس‌های خاصی را افزایش شود. پ.ن: اون کلمه‌ی Mixin انتهای اسم کلاس هم قراردادیه، بهتره نوشته بشه ولی اجبار نداره. 🚁 Hicte Blog <~ @pythonlearnme
إظهار الكل...
👍 6 1
Photo unavailableShow in Telegram
#خبر خب خب GPT-4o هم اومد که بر پایه مدل قبلی OpenAI هست و بهبودهای زیادی پیدا کرده. این مدل در اختیار همه کاربران قرار میگیره چه اشتراک‌های پولی و چه رایگان. ولی قابلیت Voice Mode که در آینده در دسترس قرار میگیره فقط برای کاربران ChatGPT Plus عرضه میشه. 🚁 Hicte Blog
إظهار الكل...
👍 4🔥 1🤡 1😍 1
Photo unavailableShow in Telegram
إظهار الكل...
👍 4💅 3🔥 1🤡 1
#سی‌پلاس‌پلاس برگه تقلب تقدم عملگرها در c++ 🚁 Hicte Blog
إظهار الكل...
👍 4🙏 1💔 1💋 1
Photo unavailableShow in Telegram
#خبر بالاخره قابلیت تغییر فونت چت ها به تلگرام دسکتاپ اومد. برای تغییر فونت از قسمت Settings به Chat Settings برید و Font family رو انتخاب کنید. 🚁 Hicte Blog
إظهار الكل...
👍 10🔥 2
Photo unavailableShow in Telegram
إظهار الكل...
🤣 13🤩 2💔 2
Photo unavailableShow in Telegram
إظهار الكل...
😁 12👍 2😢 2
Photo unavailableShow in Telegram
إظهار الكل...
🤣 6😁 3👍 1😢 1🤩 1
Photo unavailableShow in Telegram
#خبر سازنده نئوفچ به کشاورزی روی آورده و تمام مخزن‌هاش رو آرشیو کرده.
🚁 Hicte Blog <~ @volandarkside
إظهار الكل...
🤯 10🫡 6😁 3💅 2
Photo unavailableShow in Telegram
إظهار الكل...
😁 16👍 2 1💯 1💅 1