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.")