Если заявление при использовании геттеров и сеттеров? - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь вернуть цену компьютера на основе «macType», который является размером компьютера.Я не могу понять, где интегрировать оператор if в мой код, аааа !!!

class apple:
    def __init__(self,pType,price):
        self.__pType=pType
        self.__price=price

    def setpType(self,pType):
            self.__pType=pType

    def setprice(self,price):
            self.__price=price

    def getpType(self):
        return self.__pType

    def getprice(self):
        return self.__price

class mac(apple):
    def __init__(self,pType,price,macType):
        apple.__init__(self,pType,price)
        self.__price=price
        self.__macType=macType

    def setmacType(self,macType):
            self.__macType=macType

    def setmacPrice(self,price):
        if(macType()=="11Inch"):
            self.__price=float(price*.9)
        elif(macType()=="13Inch"):
            self.__price=price
        elif(macType()=="15Inch"):
            self.__price=float(price*1.2)

    def getmacType(self):
        return self.__macType

    def getprice(self):
        if (self.__macType == "11inch"):
            return super(mac, self).getprice()*.9
        elif (self.__macType == "13inch"):
            return super(mac, self).getprice()
        else:
            return super(mac, self).getprice()*1.1

a1 = apple("computer",1000)
m1 = mac("computer",1000,"11Inch")
m2 = mac("computer",1000,"13Inch")
m3 = mac("computer",1000,"15Inch")

print("a1 is a ",a1.getpType(),"and it costs",a1.getprice())
print("m1 is a ",m1.getmacType(),"and it costs",m1.getprice())
print("m1 is a ",m2.getmacType(),"and it costs",m2.getprice())
print("m1 is a ",m3.getmacType(),"and it costs",m3.getprice())

Фактический вывод должен показать, что 11 дюймов - это 900, 13 дюймов - 1000, а 15 дюймов - 1100.

1 Ответ

1 голос
/ 11 мая 2019

Сравнение строк в Python чувствительно к регистру. В вашем getprice методе вы используете "11inch", но вы даете своей конструкции "11Inch" заметить верхний и нижний регистр i? Не собирается сравнивать равных. Просто используйте то же самое везде или, что еще лучше, загляните в модуль enum.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...