Ошибка object has no attribute
Написал такую программу. Не пойму почему выходит ошибка AttributeError: 'CellPhone' object has no attribute '_CellPhone__retail_price' Вот программа
Класс CellPhone содержит данные о сотовом телефоне.
class CellPhone:
# Метод init инициализирует атрибуты.
def __init__(self, manufact, model, price):
self.__manufact = manufact
self.__model = model
self.__price = price
# Метод set_manufact принимает аргумент для
# производителя телефона.
def set_manufact (self, manufact):
self.__manufact = manufact
# Метод set_model принимает аргумент для
# номера модели телефона.
def set_model (self, model):
self.__model = model
# Метод set_retail_price принимает аргумент для
# розничной цены телефона.
def set_retail_price(self, price):
self.__retail_price = price
# Метод get_manufact возвращает
# производителя телефона.
def get_manufact(self):
return self.__manufact
# Метод get_model возвращает
# номер модели телефона.
def get_model(self):
return self.__model
# Метод get retail_price возвращает
# розничную цену телефона.
def get_retail_price(self):
return self.__retail_price
Эта программа тестирует класс CellPhone.
import cellphone
def main():
# Получить данные о телефоне.
man = input('Введите производителя: ')
mod = input('Ведите номер: ')
retail = int(input('Введите розничную цену: '))
# Создать экземпляр класса CellPhone
phone = cellphone.CellPhone(man, mod, retail)
# Показать введенные данные.
print('Вот введенные вами данные: ')
print('Производитель:', phone.get_manufact())
print('Номер модели: ', phone.get_model())
print('Розничная цена: $', phone.get_retail_price(), sep='')
main()
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
def __init__(self, manufact, model, price):
self.__manufact = manufact
self.__model = model
self.__price = price
^^^^^^^
...
def get_retail_price(self):
return self.__retail_price
^^^^^^^^^^^^^^
Вы выставляете поле self.__price, а читаете self.__retail_price. А set_ методы, где имя поля правильное, вы в этом коде не используете.