I'm making a simulated tv

Posted by Jam on Stack Overflow See other posts from Stack Overflow or by Jam
Published on 2010-03-23T04:11:13Z Indexed on 2010/03/23 4:21 UTC
Read the original article Hit count: 339

Filed under:
|
|
|

I need to make a tv that shows the user the channel and the volume, and shows whether or not the television is on. I have the majority of the code made, but for some reason the channels won't switch. I'm fairly unfamiliar with how properties work, and I think that's what my problem here is. Help please.

class Television(object):

def __init__(self, __channel=1, volume=1, is_on=0):
    self.__channel=__channel
    self.volume=volume
    self.is_on=is_on

def __str__(self):
    if self.is_on==1:
        print "The tv is on"
        print self.__channel
        print self.volume
    else:
        print "The television is off."

def toggle_power(self):
    if self.is_on==1:
        self.is_on=0
        return self.is_on
    if self.is_on==0:
        self.is_on=1
        return self.is_on

def get_channel(self):
    return channel

def set_channel(self, choice):
    if self.is_on==1:
        if choice>=0 and choice<=499:
            channel=self.__channel
        else:
            print "Invalid channel!"
    else:
        print "The television isn't on!"

channel=property(get_channel, set_channel)

def raise_volume(self, up=1):
    if self.is_on==1:
        self.volume+=up
        if self.volume>=10:
            self.volume=10
            print "Max volume!"
    else:
        print "The television isn't on!"

def lower_volume(self, down=1):
    if self.is_on==1:
        self.volume-=down
        if self.volume<=0:
            self.volume=0
            print "Muted!"
    else:
        print "The television isn't on!"

def main():

tv=Television()
choice=None
while choice!="0":
    print \
    """
    Television

    0 - Exit
    1 - Toggle Power
    2 - Change Channel
    3 - Raise Volume
    4 - Lower Volume
    """

    choice=raw_input("Choice: ")
    print

    if choice=="0":
        print "Good-bye."

    elif choice=="1":
        tv.toggle_power()
        tv.__str__()

    elif choice=="2":
        change=raw_input("What would you like to change the channel to?")
        tv.set_channel(change)
        tv.__str__()

    elif choice=="3":
        tv.raise_volume()
        tv.__str__()

    elif choice=="4":
        tv.lower_volume()
        tv.__str__()

    else:
        print "\nSorry, but", choice, "isn't a valid choice."

main()

raw_input("Press enter to exit.")

© Stack Overflow or respective owner

Related posts about python

Related posts about basics