Форум сайта python.su
0
Начинаю изучать Python по книге М.Доусона. Задача звучит так:
“Создайте программу, имитирующую телевизор как объект. У пользователя должна быть возможность вводить номер канала, а также увеличивать и уменьшать громкость. Программа допжна следить за тем, чтобы номер канала и уровень громкости оставались в допустимых пределах.”
class TV(object): def __init__(self, chanel = 1, volume = 5): self.volume = volume self.chanel = chanel def chanels(self, choice): if choice == "1": print("News on screen! Today is a great day!") elif choice == "2": print("Horror movie on screen... Be careful and stay alive") elif choice == "3": print("Wheee! Cartooooons!") self.chanel = choice def volume(self, choice): if choice == "+": self.volume += 1 if self.volume > 10: self.volume = 10 elif choice == "-": self.volume -= 1 if self.volume < 0: self.volume = 0 print("Now volume is", self.volume) def main(): tv = TV() chanel_list = ["1", "2", "3"] choice = None while choice != "0": print(""" 0 - exit (1-3) - chanels +/- to change volume """) choice = input("Choice: ") if choice == "0": print("Have a nice day!") elif choice in chanel_list: tv.chanels(choice) elif choice == "+" or "-": tv.volume(choice) else: print(choice, "is invalid choice.")
Офлайн
16
У вас в классе метод и атрибут называются одинаково, и интерпритатор пытается вызвать атрибут self.volume, который равен целому числу
Отредактировано Stright (Авг. 18, 2016 15:23:55)
Офлайн
0
StrightСпасибо!
Офлайн