تمرین‌های فصل اول: فلسفه، تاریخچه و چرایی شیءگرایی

Please login to bookmark Close

این تمرین‌ها کل مطالب فصل اول را پوشش می‌دهند. ابتدا خودتان پاسخ دهید، سپس با پاسخنامه که در انتهای بخش قرار دارد مقایسه کنید.

تمرین ۱ – پرسش‌های مفهومی

۱. شیءگرایی از دل کدام نیاز و برای حل چه مشکلی متولد شد؟ به‌طور خاص توضیح دهید مشکل اصلی کدهای بزرگ در دوران پیش از شیءگرایی چه بود.

۲. دو مکتب فکری اصلی در پیدایش شیءگرایی را نام ببرید (به‌همراه سازندگانشان) و تفاوت نگاهشان را در یک جمله بیان کنید.

۳. جمله‌ی معروف آلن کی این بود که شیءگرایی برای او یعنی «پیام‌رسانی، نه ساختارهای داده». این نگاه، ریشه‌ی کدام اصل شیءگرایی است و چرا؟

۴. چهار پارادایم اصلی برنامه‌نویسی را نام ببرید و برای هرکدام یک حوزه‌ی کاربردی مناسب ذکر کنید.

۵. منظور از «پایتون چندپارادایمی است» چیست؟ یک مزیت و یک مسئولیتی که این ویژگی به همراه دارد را بگویید.

تمرین ۲ – نقدها و فلسفه

۶. سه نقد اصلی که به شیءگرایی وارد است را نام ببرید و هرکدام را در یک جمله توضیح دهید.

۷. استعاره‌ی «موز و گوریل و جنگل» از جو آرمسترانگ درباره‌ی کدام نقد شیءگرایی است؟ منظورش را با زبان خودتان توضیح دهید.

۸. شعار «We are all consenting adults here» در پایتون به چه معناست و به کدام ویژگی زبان مربوط می‌شود؟

تمرین ۳ – تاریخچه‌ی پایتون و MRO

۹. New-Style Classes در کدام نسخه‌ی پایتون معرفی شد و مهم‌ترین تغییری که ایجاد کرد چه بود؟

۱۰. در پایتون ۳، این دو تعریف چه تفاوتی با هم دارند؟

class User:
    pass

class User(object):
    pass

۱۱. MRO چیست و پایتون امروز از کدام الگوریتم برای محاسبه‌ی آن استفاده می‌کند؟

۱۲. (کدخوانی) خروجی print(d.hello()) و print(D.__mro__) در کد زیر چیست؟ چرا؟

class A:
    def hello(self):
        return "A"

class B(A):
    def hello(self):
        return "B"

class C(A):
    def hello(self):
        return "C"

class D(B, C):
    pass

d = D()
print(d.hello())
print(D.__mro__)

تمرین ۴ – مقایسه و تحلیل

۱۳. جدول زیر را کامل کنید (پایتون در برابر جاوا):

ویژگیPythonJava
ارث‌بری چندگانه؟؟
کپسول‌سازی؟؟
نوع‌بندی؟؟

۱۴. چرا گفته می‌شود شیءگرایی پایتون به روبی نزدیک‌تر است تا به جاوا؟ دست‌کم دو دلیل بیاورید.

۱۵. حداقل سه مورد از پیش‌نیازهای دانشی لازم پیش از شروع یادگیری شیءگرایی را نام ببرید.

۱۶. سه دلیل عملی برای اینکه چرا یادگیری شیءگرایی برای ورود به بازار کار ضروری است را ذکر کنید.

تمرین ۵ – پرسش تحلیلی (تفکر انتقادی)

۱۷. این جمله را نقد یا تأیید کنید: «چون شیءگرایی نقدهای جدی دارد، بهتر است به‌جای آن همیشه از برنامه‌نویسی تابعی استفاده کنیم.» پاسخ خود را با توجه به مفهوم Tradeoff توضیح دهید.

پاسخنامه

Please login to bookmark Close
نظرات

دیدگاهتان را بنویسید

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم