Найти - Пользователи
Полная версия: Помогите с кодом
Начало » Python для новичков » Помогите с кодом
1
Samscara
Привет, ребята!
Изучаю питон с книжкой Доусона, только только подкрадываюсь к теме ООП, имеется такая задача: создать программу, имитирующую телевизор как объект, чтоб можно было менять каналы и громкость.
Вот, собственно, мой код:
class TV(object):
    def __init__(self, name):
        self.name = name
        print("Вот ваш новый телевизор,", self.name, " в нем вы можете переключать каналы и менять уровень громкости")
        
    def volume(self):
        gr = int(input("Введите уровень громкости (1 - 100): "))
        if 0 >= gr >= 101:
            print("Это недопустимое значение")
        print(gr)
    def channel(self):
        ch = int(input("Выберите канал от 1 до 100: "))
        if 0 >= ch >= 101:
            print("Это недопустимое значение")
        print(ch)
    def display(self):
        print("Ваш телевизор называется", self.name, "Вы смотрите канал ", self.channel, "на громкости ", self.volume)
        
def main():
    TV_name = input("Как называется телевизор?")
    telly = TV(TV_name)
    choice = None
    while choice != 0:
        print \
        ("""
        Телевизор
        0 - Выключить телевизор
        1 - Переключить канал
        2 - Изменить уровень громкости
        3 - Посмотреть информацию
        """
         )
        choice = input("Введите пункт меню")
        if choice == "0":
            print("Пока!")
        elif choice == "1":
            telly.channel()
        elif choice == "2":
            telly.volume()
        elif choice == "3":
            telly.display()
        else:
            print("такого пункта нет")
main()
input("чтобы выйти, нажмите любую клавишу")

Все работает хорошо, кроме одного, когда я выбираю пункт 3 в меню, то громкость и номер канала отображаются некорректно, вот так:
Ваш телевизор называется sony Вы смотрите канал <bound method TV.channel of <__main__.TV object at 0x033F2330>> на громкости <bound method TV.volume of <__main__.TV object at 0x033F2330>>

Помогите, как от этого избавиться?
Rodegast
class TV(object):
    def __init__(self, name):
        self.name = name
        self._channel = self._volume = None
        print("Вот ваш новый телевизор,", self.name, " в нем вы можете переключать каналы и менять уровень громкости")
        
    def volume(self):
        gr = int(input("Введите уровень громкости (1 - 100): "))
        if 0 >= gr >= 101:
            print("Это недопустимое значение")
        print(gr)
        self._volume = gr
    def channel(self):
        ch = int(input("Выберите канал от 1 до 100: "))
        if 0 >= ch >= 101:
            print("Это недопустимое значение")
        print(ch)
        self._channel = ch
    def display(self):
        print("Ваш телевизор называется", self.name, "Вы смотрите канал ", self._channel, "на громкости ", self._volume)
Samscara
Rodegast
Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB