【问题标题】:How to get model number?如何获得型号?
【发布时间】:2021-12-04 18:12:32
【问题描述】:

第一个类包含汽车详细信息,第二个Service 类使用get_car_by_year() 方法。我需要使用头等舱的get_*功能根据制造日期还车,但是无论我进入哪一年,我都会得到None

代码:

class Car:
    def __init__(self,model,year,registration_number):
        self.__model=model
        self.__year=year
        self.__registration_number=registration_number

    def get_model(self):
        return self.__model

    def get_year(self):
        return self.__year

    def get_registration_number(self):
        return self.__registration_number

    def __str__(self):
        return(self.__model+" "+self.__registration_number+" "+(str)(self.__year))

class Service:

    def __init__(self,car_list):
        self.__car_list = car_list

    def get_car_by_year(self,year):
        result_list = []
        for car in self.__car_list:
            if(car.get_year() == year):
                result_list.append(car.get_model())
            if(len(result_list) == 0):
                return None
            return result_list

car1=Car("WagonR",2010,"KA09 3056")
car2=Car("Beat", 2011, "MH10 6776")
car3=Car("Ritz", 2013,"KA12 9098")
car4=Car("Polo",2013,"GJ01 7854")
car5=Car("Amaze",2014,"KL07 4332")
car_list=[car1, car2, car3, car4,car5]
a1 = Service(car_list)
print(a1.get_car_by_year(2013))

【问题讨论】:

    标签: python oop


    【解决方案1】:

    您的返回语句在循环内部,该循环将始终返回 null,因为您的汽车列表中的第一辆车是 2010 年的 WagonR。如果您将当前函数 get_car_by_year 调用为 2010 年,您将获得所需的输出。 将两个 return 语句放在 for 循环之外就可以了

    def get_car_by_year(self,year):
        result_list = []
        for car in self.__car_list:
            if(car.get_year() == year):
                result_list.append(car.get_model())
        if (len(result_list) == 0):
            return None
        return result_list
    

    【讨论】:

    【解决方案2】:
    def get_car_by_year(self,year):
        result_list = []
        for car in self.__car_list:
            if(car.get_year() == year):
                result_list.append(car.get_model())
        return None if len(result_list) == 0 else result_list
    

    【讨论】:

      猜你喜欢
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-29
      • 2011-11-25
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多