🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۴ Armin
مشکل در اجرای برنامه کلاس چندگانه
جامعه پایتون (وب) ایجاد شده در ۱۴ مهر ۱۴۰۱
class HomeInfo:
    def __init__(self, meter, room, view):
        self.meter = meter
        self.room = room
        self.view = view
class Gharadad:
    def __init__(self, gharardad):
        self.gharardad = gharardad
class Apartment(HomeInfo):
    def __init__(self, meter, room, view, floor, have_parking):
        self.floor = floor
        self.have_parking = have_parking
        super().__init__(meter, room, view)
class House(HomeInfo):
    pass
    # def __init__(self, garden):
        # self.garden = garden
        # super().__init__(self.meter, self.room, self.view)
class Rent(Gharadad):
    def __init__(self, gharardad, monthly_amount, fixed_amount):
        self.monthly_amount = monthly_amount
        self.fixed_amount = fixed_amount
        super().__init__(gharardad)
class Buy(Gharadad):
    def __init__(self, fee, gharardad):
        self.fee = fee
        super().__init__(gharardad)
class ApartmentRent(Apartment, Rent):
    def __init__(self, meter, room, view, floor, have_parking, gharardad, monthly_amount, fixed_amount):
        super().__init__(meter, room, view, floor, have_parking, gharardad, monthly_amount, fixed_amount)
    def __str__(self):
        return f"Meter : {self.meter}\\t Rooms : {self.room}\\t" \\
               f" View : {self.view}\\t Floor : {self.floor}\\t" \\
               f" have Parking : {self.have_parking}\\t"
               f" Monthly : {self.monthly_amount}\\t" \\
               f"Fixed : {self.fixed_amount}\\t" \\
               f"Gharardad : {self.gharardad}"
class ApartmentBuy(Apartment, Buy):
    pass
class HouseRent(House, Rent):
    pass
class HouseBuy(House, Buy):
    pass
apartmentrent = ApartmentRent(
    meter=200, room=1, view="full view", floor=10, have_parking=True,
    monthly_amount=20000, fixed_amount=2, gharardad=True)
print(apartmentrent)
# print(apartmentrent.monthly_amount)
# print(ApartmentRent.mro())

سلام.

این نوع ارث بری که انجام دادم رو نتونستم مثلش رو تو اینترنت ‍‍پیدا کنم منظورم همراه با super() کار شده باشه که چندین ارگومان متفاوت بفرسته.

برای استفاده از super() نمیشه مشخص کرد از چه کلاسی ارث بری بکنه؟

سلام امیدوارم عالی باشید

اگر می‌خواهید متد سازنده کلاس پدر کال کنید بایستی از super استفاده کنید

پوریا شفیعی ۱۵ مهر ۱۴۰۱، ۱۷:۳۰

بله درسته

ولی مشکل کد رو نمی‌دونم

Armin ۱۷ مهر ۱۴۰۱، ۰۴:۲۲

سلام آرمین عزیز ...

اگر مشکلت هنوز حل نشده فایل کدت را همراه با یه توضیح بفرست تا در اسرع وقت چکش کنم ....

اگر مشکلت حل شده ممنون میشم تاپیک رو تایید بفرمایید تا بسته بشه ...

موفق باشی ?

بهترین پاسخ
Reza Mobaraki ۰۳ آبان ۱۴۰۱، ۱۸:۵۷

سلام مشکل من داخل شی گرایی اسفاده تو در تو هستش

که هرچی بیشتر گسترش پیدا میکنه کدم بخاطر همین ارور هستش و نمی‌تونم راه حلی براش پیدا کنم

و هربار که میخوام یکجای کلاس‌های اولیه رو تغییر بدم یا یه قابلیت جدید اضافه کنم

( در EstateInfo.py اتریبیوت‌های کلاس جدید رو نمیتونه بگیره و همین ارور رو دوباره میده)

دوباره کد به مشکل میخوره و همین ارور رو میده


فکر کنم مشکل از super() باشه ؟؟


6540-Screenshot (192).png

Armin ۰۳ آبان ۱۴۰۱، ۱۹:۱۵