💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ امیرحسین سبزه ئی
دریافت ارور 'NoneType' object has no attribute 'search'
امیرحسین سبزه ئی حل شده توسط امیرحسین سبزه ئی

با سلام 

بنده اسکریپت رو مانند  استاد در قسمت منیجر، بیس پیاده کردم اما در انتهای کلاس با ارور بالا رو به رو شدم و نمی‌دونم چرا بیس ست نمیشه......

untitled-3f7J.pnguntitled2-nFFl.pnguntitled3-klbt.pnguntitled4-RV51.png

سلام وقت بخیر لطفا سورس کد خودتون رو اپلود کنید که بررسی کنیم 

Reza Mobaraki ۳۱ خرداد ۱۴۰۳، ۱۳:۲۸
from user import User
from random import choice
from estate import Apartment,house,Store
from region import region
from advertisment import Apartment_Sell,Apartment_rent,house_sell,house_rent,store_sell,store_rent
if __name__ == "__main__":
    name=['amir','reza','taghi']
    last_name=['mahdavi','torabi','naghavi']
    mobiles=['09106515684','09186248942','09218087777'
    ,'09186243333','09186308888']
    for mobile in mobiles:
        User(choice(name),choice(last_name),mobile)
    for user in User.object_list:
        print(f'{user.id}\t{user.fullname}')
    # print('----------------------------------------------------')
    rg1=region('tehransar')
    rg2=region('darya')
    apartmentsel1=Apartment_Sell(True,False,3,user.object_list[0],80,2,1395,rg1,'malek ashtar',7,True,False)
    apartmentrent1=Apartment_rent(True,False,3,user.object_list[0],80,2,1395,rg1,'malek ashtar',6996,555)
    house_sell1=house_sell(True,False,3,user.object_list[0],80,2,1395,rg1,'malek ashtar',99999)
    house_rent1=house_rent(True,False,3,user.object_list[0],80,2,1395,rg1,'malek ashtar',919191)
    print(Apartment_Sell.manager,'ddd',Apartment_rent.manager)
    apartmentsel2 = Apartment_Sell(True, False, 3, user.object_list[0], 80, 2, 1395, rg1, 'malek ashtar', 4, True, False)
    apartmentsel3 = Apartment_Sell(True, False, 3, user.object_list[0], 80, 2, 1395, rg1, 'malek ashtar', 9, True, False)
    print(Apartment_Sell.manager,'ddd',Apartment_rent.manager)
    print(apartmentsel1.manager.search(area__min=80))
    print(Apartment_Sell.mro())

 

from deal import sell,rent
from estate import Apartment,house,Store
from base import BaseClass
class Apartment_Sell(BaseClass, Apartment,sell):
    def show_detail(self):
        self.show_describtion()
        self.show_price()
class Apartment_rent(BaseClass,Apartment,rent):
    pass
class house_sell(BaseClass,house,sell):
    pass
class house_rent(BaseClass,house,rent):
    pass
class store_sell(BaseClass,Store,sell):
    pass
class store_rent(BaseClass,Store,rent):
    pass
from abc import ABC
from manager import Manager
class BaseClass(ABC):
    _id = 0
    object_list = None
    manager = None
    def __init__(self, *args, **kwargs):
        self.id = self.generate_id()
        self.set_manager
        self.store(self)
        super().__init__(*args, **kwargs)
    @classmethod
    def generate_id(cls):
        cls._id += 1
        return cls._id
    @classmethod
    def set_manager(cls):
        if cls.manager is None:
            cls.manager=Manager(cls)
    @classmethod
    def store(cls, obj):
        if cls.object_list is None:
            cls.object_list=[]
        cls.object_list.append(obj)
from abc import abstractmethod
from abc import ABC
class EstateAbstract(ABC):
    def __init__(self,user,area,rooms_count,built_year,region,adress,*args,**kwargs):
        self.user=user
        self.area=area
        self.rooms_cunt=rooms_count
        self.built_year=built_year
        self.region=region
        self.adress=adress
        super().__init__(*args,**kwargs)
    @abstractmethod
    def show_describtion(self):
        pass
class Apartment(EstateAbstract):
    def __init__(self,has_elevator,has_parking,floor,*args, **kwargs):
        self.has_elevator=has_elevator
        self.has_parking=has_parking
        self.floor=floor
        super().__init__(*args, **kwargs)
    def __str__(self):
        return f"{self.floor}"
    def show_describtion(self):
        print(f'Apartment: {self.id} area: {self.area}')
class house(EstateAbstract):
    def __init__(self,has_yard,floor_cunt, *args, **kwargs):
        self.has_yard=has_yard
        self.floor_cunt=floor_cunt
        super().__init__(*args, **kwargs)
    def show_describtion(self):
        print(f'House{self.id}')
class Store(EstateAbstract):
    def show_describtion(self):
        print(f'Store{self.id}')
from abc import ABC
class sell(ABC):
    def __init__(self,price_per_meter,discuntable = False,convertable=False, *args, **kwargs):
        self.price_per_meter=price_per_meter
        self.discuntable=discuntable
        self.convertable=convertable
        super().__init__(*args, **kwargs)
    def show_price(self):
        print(f'price:{self.price_per_meter}\t discunt:{self.discuntable}\t convertable:{self.convertable}')
class rent(ABC):
    def __init__(self,initial_price,monthly_price,convertable=False,discuntable=False ,*args, **kwargs):
        self.inital_price=initial_price
        self.monthly_price=monthly_price
        self.convertable=convertable
        self.discuntable=discuntable
        super().__init__(*args, **kwargs)
from base import BaseClass
class region(BaseClass):
    def __init__(self,name,*args,**kwargs):
        self.name=name
        super().__init__(*args,**kwargs)
امیرحسین سبزه ئی ۰۲ تیر ۱۴۰۳، ۱۳:۰۴

با هوش مصنوعی و کمی جستجو پیداش کردم 

بجای self.set_manager() 

self.set_manager گذاشته بودم، پرانتز جا انداخته بودم !!!!

بهترین پاسخ
امیرحسین سبزه ئی ۰۵ تیر ۱۴۰۳، ۱۲:۱۶