אובייקט אבסטרקטי (ולא מתודה) - יש חיה כזאת?

אני רוצה לבנות מחלקה אבסטרקטית, ולחייב את כל המחלקות היורשות שיתקיים בהם אובייקט כלשהו (ולא מתודה). האם זה אפשרי? אני מתקשה להבין את התיעוד של המודול.

ספציפית בתרגיל מלון קליפורניה

רציתי להגדיר במחלקה “חדר” ממנה יורשים שאר סוגי החדרים, את האובייקט MAX_BEDS, שיידרס ויוגדר אחרת לכל מחלקת בת.

מה זה אומר, להגדיר אובייקט?

למיטב הבנתי אובייקט הוא אוסף של תכונות ופעולות, ולכן אם כל החדרים חולקים תכונות / פעולות מסוימות אלו יופיעו במחלקת העל ומה שייחודי יופיע רק במחלקות היורשות שהחדר הוא האובייקט שלהן.

אבל אולי לא הבנתי נכון, או שלא הבנתי את השאלה.

נראה לי שלא ניסחתי נכון.
אולי אני לא מדייקת כשאני אומרת אובייקט - הכוונה היא כנראה לתכונה, כמו תכונה גלובאלית שמוגדרת למחלקה (ולא בפעולת init).

נראה לי שאפשר להגדיר משתנה מחלקה (שאם הבנתי עכשיו נכון אז זה מה שאת רוצה), למרות שאם את מתכננת לדרוס אותו, אז אולי כדאי לחשוב על מה המקום הכי מתאים להגדרה הזו.

מה שכן, תו’כ ההתכתבות הזו נפל לי האסימון על משהו אחר שניסיתי לעשות וקצת רבתי איתו, אז תודה!

לייק 1

זו בדיוק התהייה שלי.
כמו שבמחלקה אבסטרקטית אני יכולה להגדיר מתודות שחייבות להתקיים במחלקות היורשות, אני רוצה להגדיר משתנה מחלקה שחייב להתקיים במחלקות היורשות, ולא יודעת מה הסינטקס של זה.

ניסיתי קצת להסתכל אונליין ולא מצאתי תשובה סופר ישירה - אולי מישהו אחר יוכל לספק כזו.

מה שכן מצאתי זה הצעות להגדיר תכונה כזו ומשם את כבר יודעת לחייב אותה נראה לי.

לייק 1

אם הבנתי נכון (תקני אותי) את רוצה להגדיר משתנה מחלקה והוא יופיע במחלקה היורשת?
אם כן;

class A:
	a = 5
	
class B(A):
	pass
	
print(B().a)

משתני מחלקה תמיד יועברו למחלקה היורשת, כמו שאת רואה.

ים ענה על זה בטלגרם:

יש דרכים לעשות את זה, אבל לצערי לא משהו שב־scope של החומר שלנו
(אין דרך straight-forward של שורה, צריך לתכנת משהו שישנה את ההתנהגות של מחלקות)

3 לייקים