How can I use a returned value to open up another instance of a class in Python?
<p>I am on exercise 43 doing some self-directed work in <a href="http://learnpythonthehardway.org/" rel="nofollow">Learn Python The Hard Way</a>. And I have designed the framework of a game spread out over two python files. The point of the exercise is that each "room" in the game has a different class. I have tried a number of things, but I cannot figure out how to use the returned value from their initial choice to advance the user to the proper "room", which is contained within a class. Any hints or help would be greatly appreciated. </p>

<p>Apologies for the poor code, I'm just starting out in python, but at my wit's end on this.</p>

<p>Here is the ex43_engine.py code which I run to start the game.</p>

<hr>

<pre><code>from ex43_map import *
import ex43_map
import inspect

#Not sure if this part is neccessary, generated list of all the classes (rooms) I imported from ex43_map.py, as I thought they might be needed to form a "map"
class_list = []
for name, obj in inspect.getmembers(ex43_map):
    if inspect.isclass(obj):
        class_list.append(name)

class Engine(object):

    def __init__(self, room):
        self.room = room 


    def play(self):
        # starts the process, this might need to go inside the loop below
        next = self.room      
        start.transportation_choice()

        while True:
            print "\n-------------"
            # I have tried numerous things here to make it work...nothing has

start = StartRoom()
car = CarRoom()
bus = BusRoom()
train = TrainRoom()
airplane = AirplaneRoom()
terminal = TerminalRoom()

a_game = Engine("transportation_choice")
a_game.play()
</code></pre>

<hr>

<p>And here is the ex43_map.py code</p>

<hr>

<pre><code>from sys import exit
from random import randint

class StartRoom(object):
    def __init__(self):
        pass
    def transportation_choice(self):
        print "\nIt's 6 pm and you have just found out that you need to get to Chicago by tomorrow morning for a meeting"
        print "How will you choose to get there?\n"
        print "Choices: car, bus, train, airplane"
        choice = raw_input("&gt; ")

        if choice == "car":
            return 'CarRoom'

        elif choice == "bus":
            return 'BusRoom'

        elif choice == "train":
            return 'TrainRoom'

        elif choice == "airplane":
            return 'AirplaneRoom'

        else:
            print "Sorry but '%s' wasn't a choice." % choice
            return 'StartRoom'


class CarRoom(object):

    def __init__(self):
        print "Welcome to the CarRoom"

class BusRoom(object):

    def __init__(self):
        print "Welcome to the BusRoom"

class TrainRoom(object):

    def __init__(self):
        print "Welcome to the TrainRoom" 

class AirplaneRoom(object):

    def __init__(self):
        print "Welcome to the AirplaneRoom"

class TerminalRoom(object):

    def __init__(self):
        self.quips = [
            "Oh so sorry you died, you are pretty bad at this.",
            "Too bad, you're dead buddy.",
            "The end is here.",
            "No more playing for you, you're dead."
            ]

    def death(self):
             print self.quips[randint(0, len(self.quips)-1)] # randomly selects one of the quips from 0 to # of items in the list and prints it 
             exit(1)  
</code></pre>

<hr>
