۳ دانشجوی سون‌لرن
مبهم بودن دسترسی به attr ها
جامعه پایتون (وب) ایجاد شده در ۱۵ مرداد ۱۴۰۱

سلام. یک سوالی تو ذهنم بود از اول سرفصل design pattern‌ها و متوجه نمیشدم اما گفتم بیام جلوتر شاید بفهمم که باز هم تو این ویدیو بود و من متوجه نشدم :)

سوالم اینه که که در دقیقه ۲۵:۵۰ این ویدیو . در کلاس purchase یک متدی به اسم total_price داره که کاری ندارم کارش چیه . سوالم اینه که چطور این متد به اتریبیوت کلاس product یعنی اتریبیوت price دسترسی داره در صورتی که ارث بری نکرده . (حتی products_list هم هنوز داخل main مقداردهی نکردن که بگیم از کلاس product آبجکت ساختن و دادن به purchase )

یه مقدار سوالم فکر کنم مبهم بود اما اگر متوجه شدید ممنون میشم راهنمایی کنید :))

8964-Screenshot from 2022-08-06 17-49-44.png

درود

کلا پایتون به دلیل خاصیت زبانش زمان نوشتن این موارد خیلی سختگیری نداره و متوجه نمیشه، تا برنامه اجرا بشه. مثلا کافیه این کد رو قبل از خط ۳۵ اضافه کنید:

self.products_list = [1,2]

متوجه میشید تا به اجرای اون .price نرسه برنامه خطا نمیده و اصلا هم متوجه نمیشه شی اصلا ویژگی price رو نداره :)))

اینکه این مورد رعایت بشه که کاربر حتما نمونه product درست به تابع بده، یا به قول شما باید از راه ارث بری تعریف بشه یا مثل استاد در تابع main شی رو بسازیم و بعد پاس بدیم.

نازنین کریمی مقدم ۱۵ مرداد ۱۴۰۱، ۱۹:۳۳

سلام . ممنون از راهنماییتون تا حدی سوالم رو رفع کرد . اما اگر ویدیو رو در دقیقه 25.22 ببینید زمانی که استاد product.price رو مینویسن خوده پایتون اتریبیوت price رو پیشنهاد میده از کلاس Product و این بیشتر برام گیج کننده بود. که چرا باید همچین attr رو پیشنهاد بده. ولی کلا نباید انقدر در مسائل ریز شد و فقط خواستم بدونم شاید علت خاصی داشته باشه و من متوجه نشدم :)

شایان استواری ۱۵ مرداد ۱۴۰۱، ۲۰:۵۹

سلام شایان جان وقتت بخیر

مبحث دیزاین پترن‌ها جز مباحثی هست که مرور باعث درکتون میشه و اون هم در پروژه‌های واقعی

دیدن این سرفصل از دید اشنایی کفایت میکنه

به مرور در اینده که با پروژه‌های واقعی برخورد کردید یاد میگیرید و نگران نباشید


بهترین پاسخ
پوریا شفیعی ۱۶ مرداد ۱۴۰۱، ۰۵:۰۴