🐍 Python & Raspberry 🐍
Open in Telegram
Python- Raspberry Pi-AI-IOT ادمین : فرهاد ناصری زاده @farhad_naserizadeh @farhad3412 گروه پایتون @Python_QA تبادل @mmtahmasbi کانال مرتبط @new_mathematical @micropython_iot @c_micro اینستاگرام http://Instagram.com/python_raspberry
Show more8 216
Subscribers
No data24 hours
-177 days
-8330 days
Posts Archive
دکتر فیروز نادری، دانشمند ایرانی ناسا در ۷۷ سالگی درگذشت.
او که معاون پیشین مدیرکل «آزمایشگاه پیشرانش جت» در ناسا بود، توانست پس از تصدی پست مدیریت برنامههای اکتشافات منظومه شمسی، ۳ ماموریت مهم از جمله پرتاب دو کاوشگر مریخنورد «روح» و «فرصت» را با موفقیت به انجام برساند.
یاد و نامش گرامی
دکتر فیروز نادری، دانشمند ایرانی ناسا در ۷۷ سالگی درگذشت.
او که معاون پیشین مدیرکل «آزمایشگاه پیشرانش جت» در ناسا بود، توانست پس از تصدی پست مدیریت برنامههای اکتشافات منظومه شمسی، ۳ ماموریت مهم از جمله پرتاب دو کاوشگر مریخنورد «روح» و «فرصت» را با موفقیت به انجام برساند.
یاد و نامش گرامی
Liskov Substitution Principle:
خانوم Barbara Liskov در سال ۱۹۸۷ یه اصلی رو به نام LSP معرفی کردن که یکی از اصول طراحی کلاس ها در object oriented programming هست.
به طور خلاصه این اصل میگه اگر تایپ B از تایپ A ارث بری میکنه، هرجایی که ما نمونه ای از تایپ A داشته باشیم باید بتونیم به جاش نمونه ای از تایپ B رو قرار بدیم بدون اینکه برنامه به مشکل بخوره. در غیر این صورت این رابطه ارث بری صحیح نیست.
مثال: فرض کنید یه کلاس base داریم به اسم Bird که یک متد داره به اسم Fly:
class Bird:
def fly(self):
print("I can fly...")
و دو تا subclass داریم به اسم Duck (اردک) و Ostrich (شترمرغ) که از Bird ارث بری میکنن:
class Duck(Bird):
pass
class Ostrich(Bird):
pass
الان اردک میتونه پرواز کنه چون یه پرنده هست، ولی آیا شترمرغ میتونه پرواز کنه؟ نه نمیتونه. آیا پرنده نیست؟ چرا هست. پس این رابطه درست نیست و اصل LSP رو رعایت نمیکنه.
رابطه ی صحیح چطور میتونه باشه؟ اینکه تشخیص بدیم اصلا Fly متد درستی برای Bird نبوده و اون رو این شکلی بازنویسی کنیم:
class Bird:
pass
class FlyingBirds(Bird):
def fly(self):
print("I can fly...")
class Duck(FlyingBirds):
pass
class Ostrich(Bird):
pass
✒️ @AmirsoroushhLiskov Substitution Principle:
خانوم Barbara Liskov در سال ۱۹۸۷ یه اصلی رو به نام LSP معرفی کردن که یکی از اصول طراحی کلاس ها در object oriented programming هست.
به طور خلاصه این اصل میگه اگر تایپ B از تایپ A ارث بری میکنه، هرجایی که ما نمونه ای از تایپ A داشته باشیم باید بتونیم به جاش نمونه ای از تایپ B رو قرار بدیم بدون اینکه برنامه به مشکل بخوره. در غیر این صورت این رابطه ارث بری صحیح نیست.
مثال: فرض کنید یه کلاس base داریم به اسم Bird که یک متد داره به اسم Fly:
class Bird:
def fly(self):
print("I can fly...")
و دو تا subclass داریم به اسم Duck (اردک) و Ostrich (شترمرغ) که از Bird ارث بری میکنن:
class Duck(Bird):
pass
class Ostrich(Bird):
pass
الان اردک میتونه پرواز کنه چون یه پرنده هست، ولی آیا شترمرغ میتونه پرواز کنه؟ نه نمیتونه. آیا پرنده نیست؟ چرا هست. پس این رابطه درست نیست و اصل LSP رو رعایت نمیکنه.
رابطه ی صحیح چطور میتونه باشه؟ اینکه تشخیص بدیم اصلا Fly متد درستی برای Bird نبوده و اون رو این شکلی بازنویسی کنیم:
class Bird:
pass
class FlyingBirds(Bird):
def fly(self):
print("I can fly...")
class Duck(FlyingBirds):
pass
class Ostrich(Bird):
pass
✒️ @Amirsoroushhhttps://www.instagram.com/p/CmOhX6NjhJu/?igshid=MmJiY2I4NDBkZg==
اینستاگرام کانال
https://www.instagram.com/p/CmOhX6NjhJu/?igshid=MmJiY2I4NDBkZg==
اینستاگرام کانال
کانال تلگرام یوبرد دوباره فعال شد.
بهترین مرجع الکترونیک، برنامه نویسی، میکروکنترلرها و PCB
حتما دنبال کنید.👇
@uboardir - یوبرد
کانال تلگرام یوبرد دوباره فعال شد.
بهترین مرجع الکترونیک، برنامه نویسی، میکروکنترلرها و PCB
حتما دنبال کنید.👇
@uboardir - یوبرد
