Make a Tv simulator - Python
<p>I am really new to Python and I have to make a tv simulator. I have searched basically the entire net but I cant really find my answer. My problem is that we have to save the state of the tv in a file and when we reopen the programm it must retrieve its previous state i.e. channel, show, volume. I use pickle for saving the file, but it does not retrieve the previous state.  </p>

<p>Hopefully I have been adequatly specific otherwise feel free to ask me for clarification.</p>

<p>Thank you in advance </p>

<pre><code>class Television(object):
    currentState = []

    def __init__(self,volume,channel,show):
        self.volume=volume
        self.channel=channel
        self.show=show

    def changeChannel(self,choice):

        self.channel=choice 
        return self.channel

    def increaseVolume(self,volume):
        if volume in range(0,9):
            self.volume+=1
        return self.volume

    def decreaseVolume(self,volume):
        if volume in range(1,10):            
            self.volume-=1        
        return self.volume

    #def __str__(self):
        #return "[channel: %s show: %s,volume: %s]" % (self.channel, self.show, self.volume)
    def __str__(self):
        return  "Channel: "+str(self.channel)+\
                "\nShow: "+ str(self.show)+\
                "\nVolume: "+ str(self.volume)
                                #printing object, state = "print(object)"
    def getState(self):         
        return self.volume

    def setState (self,channel,show):
        self.volume=5
        self.channel=channel[1]
        self.show=show[1]


#####################################################################

from tvsimulator import* 

import pickle, os.path

#from builtins import int

channel = ["1. Mtv","2. Tv 3","2. Svt","4. Kanal4"]

show = ["Music is life", "Har du tur i karlek?", "Pengar ar inte allt","Vem vill inte bli miljonar"]

volume = 5

global myTv

livingRoomTv = Television(channel,show,volume)

kitchenTv = Television(channel,show,volume)  




def saveFile(): 

    with open("tvState.pkl",'wb') as outfile:

        pickle.dump(livingRoomTv,outfile)
        pickle.dump(kitchenTv,outfile)

def importFile():       

    with open("tvState.pkl",'rb') as infile:

        livingRoomTv = pickle.load(infile)
        kitchenTv = pickle.load(infile)


def channelMenu(myTv):    
    for i in channel:
        print(i)                
    choice =int(input(print("Which channel do you want?")))
    choice = channel[choice-1]                    
    myTv.changeChannel(choice)
    selection =myTv.changeChannel(choice) 
    return selection   


def methodSelection(myTv):  

    print("1: Change channel")
    print("2: Volume Up")
    print("3: Volume Down")
    print("4: Return to main menu")       
    choice = int(input(print("\nPleas make a selection from the above list\n")))   
    print(myTv)
    try:                    
        if choice ==1:   
            channelMenu(myTv)
            print(myTv)          
            methodSelection(myTv)
        if choice ==2:
            myTv.increaseVolume(volume)
            print(myTv)
            methodSelection(myTv)
        if choice ==3:
            myTv.decreaseVolume(volume)
            print(myTv)
            methodSelection(myTv)
        if choice ==4:
            mainMenu()
    except:
        print("Wrong selection, please try again")




def mainMenu(): 

    print("1: Livingroom Tv")
    print("2: Kitchen TV")
    print("3: Exit\n")    
    choice = int(input(print("Please make a selection from the above list")))          
    try:              
        if choice == 1:
            print("Living room\n")       
            print(livingRoomTv)
            myTv = livingRoomTv        
            methodSelection(myTv)       
        if choice == 2:
            print("Kitchen\n")      
            print(kitchenTv)
            myTv=kitchenTv        
            methodSelection(myTv)        
        if choice == 3:
            saveFile()
            print("Tv Shut Down")
            exit
    except:
        print("Wrong selection, please try again")



def startUp():

    if os.path.isfile("tvState.pkl"):
        print("Tv restored to previous state")
        importFile()
        kitchenTv.getState()
        livingRoomTv.getState()
        mainMenu()               

    else:
        print("Welcome")
        kitchenTv.setState(channel, show)
        livingRoomTv.setState(channel, show)
        saveFile()
        mainMenu()    

startUp()  
</code></pre>